목록전체 글 (190)
낭만 프로그래머
일반적으로 서버에 있는 파일을 다운로드 할 경우 JSP를 사용하였다. 현재 Spring MVC 5로 작업을 하다보니 Javascript를 이용하여 서버의 Controller 호출하려 한다. 처음에는 ajax를 이용하여 호출을 해보려 했으나 2번을 호출해야 한다는 점도 있고 해서 아래와 같이 간단하게 작업을 해 보았다. APIController.java @RequestMapping(value = "/actionExcelDownload.do", method = RequestMethod.GET) public ResponseEntity actionExcelDownload( @RequestParam(value = "fileName",required = false) String fileName) { Resource..
Spring MVC 5에서 Scheduler를 사용해 보려고 task:annotation-driven 을 xml에 사용해 보았으나 동작을 하지 않았다. 이유를 찾아 보려 했지만 실패했다. 그래서 자바소스에 어노테이션으로 작업하였더니 돌아간다. ㅎㅎ XML 설정 파일 ... ... Scheduler 파일 import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component @EnableScheduling public class FrmmSchedu..
Kendo UI 의 Grid를 Server Side 페이징 처리를 해보자 중요한 부분을 요약하면 Kendo UI Grid에서 설정을 한 후 Client에서 skip, page, take, pageSize를 보내오면 Server에서는 total, data를 보내면 된다. (page는 0부터 시작이 아니라 1부터 시작이다) MSSQL에서는 2012버전부터 페이징 처리를 위한 문법을 제공한다 Script 파일 var listDataSource = new kendo.data.DataSource({ transport: { ... read: function(options) { $.ajax({ url: "/api/getActionList.do", contentType: 'application/json', dataTy..
전체 설정은 생략하고 사용하는 부분만 적어 놓았다 1. XML로 Bean을 정의하자 - 기본적으로 DataSource 와 SqlSessionFactoryBean 와 Mapper의 Bean은 정의해야 한다 2. Controller 또는 Service 에서 사용하는 실행 구문이다 - 멤버 변수로 @Autowired로 DataSourceTransactionManager를 선언해야 한다 DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = transactionMan..
앱을 개발하다가 보면 홈키를 눌러 Background에 집입 했을 경우 앱을 종료 시키고 실행시에 처음부터 시작하게 만들어야 하는 경우가 있다. 간단하게 AndroidManifest.xml 파일에 Activity에 android:noHistory="true" 를 넣어 주면 된다
안드로이드를 개발 하다가 보면 API를 호출해서 그 결과를 UI를 업데이트 하는 경우가 다반사 이다. 이때 경험하게 되는 것이 Thread 에러다. //UI 업데이트를 메인 Thread만 해야 한다는 에러 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. // 메인 Thread에서 네트워크 통신을 시도 할 때 나오는 에러 android.os.NetworkOnMainThreadException 우선 네트워크를 통한 통신은 메인 Thread에서 할 수 없다. 그리고 UI 업데이트는 메인 Thread에서만 할 수 있다. 정..
Android에서 데이터를 저장하는 방법은 일반적으로 DB / File / SharedPreferences 의 3가지 정도가 있다. 이번에는 간단하게 사용할 수 있는 SharedPreferences를 알아 보자 데이터 저장하기 var key: String = "테스트" val sharedPreferences: SharedPreferences = context.getSharedPreferences("fieldrawmaterial",MODE_PRIVATE) sharedPreferences.edit().putString(key, value).apply() 데이터 불러오기 var key: String = "테스트" val sharedPreferences: SharedPreferences = context.get..
Android에서 Custom으로 Dialog를 만들어보자 MainActivity.kt 에서 Dialog를 호출하는 소스이다 MainActivity.kt ... // Setting 클릭시 binding.ivSetting.setOnClickListener(View.OnClickListener { val dlg = SettingDialog(this) dlg.setOnOKClickSettingListener{ content -> var toast = Toast.makeText(this,content,Toast.LENGTH_SHORT) toast.show() } dlg.start() }) ... SettingDialog import android.app.Dialog import android.view.Windo..