Category Archives: FrameWork

Spring 3.1 이 java 객체를 json으로 변환해 줄 때, 값이 없는 객체는 json에 빈문자("") 대신 "null" 문자열을 리턴해 주는데, 이를 빈문자("")로 리턴해 주도록 바꾸는 방법

By | 8월 5, 2014

– 출처 :  http://stackoverflow.com/questions/12934045/null-values-as-empty-strings-when-using-responsebody-annotation –   1. null serializer 를 작성한다. import java.io.IOException; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.map.JsonSerializer; import org.codehaus.jackson.map.SerializerProvider; public class NullSerializer extends JsonSerializer<Object> { @Override public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeString(“”); } }     2. custom object mapper 를 작성한다.  (위에서 작성한 NullSerializer 사용) import… Read More »

MiPlatform에서 그리드(Grid)에 툴팁(tooltip)을 넣을 때 주의할 점

By | 6월 2, 2014

* 그리드의 특정 칼럼에 툴팁(tooltip)을 넣을 때에는 그리드의 OnMouseOver  이벤트핸들러를 사용한 후, row, col 필터링을 사용한다. * OnMouseOver 이벤트핸들러 안에 trace()로 로그를 찍으면 툴팁 기능이 작동하지 않는다 !!! (왜 그런지는 나도 몰라 ㅠㅠ…)     * 툴팁 코딩 예시 function grd_OnMouseOver(obj,nPosX,nPosY,nRow,nCell,nPivotIndex) { var text; if(nCell == 8){ text = ds01.GetColumn(nRow, ‘COL01’); }else{ text = ”;… Read More »

MiPlatform 그리드(Grid) 내에 공통코드 콤보박스(Combo box) 넣기

By | 4월 30, 2014

1. 공통코드 전역데이터셋을 필터링하여 새로운 데이터셋 사본을 생성한다.   //공통코드에서 ‘조치방법’ 코드그룹만을 가진 사본을 dsMeasrMthdCd으로 copy한다. //전체 표현식을 큰 따옴표로 감싸고, 필터링 문자열만 작은 따옴표로 감싸는 것에 주의해야 한다.! gds_comcode.Filter(“COM_GRP_CD == ‘MEASR_MTHD_CD'”); dsMeasrMthdCd.CopyF(gds_comcode); gds_comcode.UnFilter();     2. 콤보를 넣기 원하는 그리드의 해당 칼럼 속성을 다음과 같이 설정한다. Display: combo Edit: combo ComboCol: 공통코드의 코드 ComboText:… Read More »

Ibatis 쿼리 수행시 java.util.NoSuchElementException 이 발생하는 경우

By | 9월 11, 2013

Case 1.     가장 흔한 경우로, 바인딩변수 메타문자인 #을 열어놓고 닫지 않은 경우이다. (ex: #userId => #userId#)     내 경험상 이럴 때는 컴파일단계에서 오류가 발생했던 것 같다. Case 2.     이 경우는 좀 드문 경우였는데, 쿼리 내에서 괄호() 를 정상적으로 열고 닫지 않았을 경우에 발생했다.     내 경우에는 NVL()함수를 사용하는데 앞… Read More »

[펌글] iBatis에서 procedure 실행시 register output parameters failed 에러

By | 11월 19, 2012

– 출처 : http://yep1004.blog.me/100070785016 –  Never used it with stored procedure calls, but I would try defining the OUT parameter as a BigDecimal and see what happens. Oracle tends to return numerics as BigDecimals.즉, procedure에서 선언된 ‘NUMBER’ 타입의 변수는 oracle 내부적으로 BigDecimal 로 변환한다는 것!따라서 parameterMap에서 아래와 같이 선언해 주어야 한다.<parameter property=”outValue”  jdbcType=”DECIMAL” mode=”OUT” javaType=”long”/>이는 IN/OUT 전체에서 발생하므로,… Read More »

[MiPlatform] FirstRow의 의미

By | 3월 13, 2012

    FirstRow란 Server측에서 보내는 Data를 화면에서 Block 단위 ( 예 : 100 record ) 만큼 화면     에 미리 보여주고 나머지 Data는 계속 받아내리는 형태의 Data처리 방법을 의미합니다.     FirstRow를 처리하는 기본원리는, Service측에서 보내고자 하는 Data를 Block단위로 보내고     Client측에서는 Dataset의 Property를 조정합니다.

MiPlatform에서 null 체크시 주의할 점

By | 2월 3, 2012

MiPlatform 에서 어떤 객체가 어떤 속성을 가지고 있는지 체크를 할 때  if( obj.splHorz != null ) { … } 과 같은 코드를 사용하곤 했는데, 이놈이 오류 가능성을 내포하고 있었다. 왜냐하면 MiPlatform에서는 비록 객체 자신이 해당 속성을 갖고 있지 않다고 해도, 부모객체가 해당 속성을 갖고 있으면 자신이 갖고 있는 것으로 간주하기 때문이다. 그래서 일례로, 하위페이지가 split… Read More »

MiPlatform에서 Form onload시 타이머(timer)를 사용하여 인터벌을 주는 방법

By | 2월 3, 2012

1. OnLoadCompleted 계열의 함수의 원하는 위치에서 setTimer() 함수를 호출한다.     form_OnLoadCompleted(){         settimer(1,1000);   //이벤트ID 1번, 1초 후 OnTimer 이벤트 발생시킴     } 2. Form의 OnTimer 이벤트에 바인딩할 함수를 만들고, 바인딩한다     killtimer() 함수를 사용하여 한 번만 실행하고 종료시킨다.     function commForm_OnTimer(obj,nEventID){         commForm_setResize(this);  //OnLoadCompleted 얼마 후 한… Read More »

[펌글] 스프링의 StringUtils 메서드 정리

By | 1월 20, 2012

– 출처 : http://julingks.tistory.com/38 – 스프링에서 StringUtils 살펴보기 Util 라이브러리를 120% 활용하기 위해서는 어떤 메소드를 제공하는가를 빨리 파악해야 한다. 그래야 불필요 없는 중복 코드를 생성하지 않고, 자주 쓰는 간단한 함수를 작성하는데 드는 시간을 절약할 수 있다. org.springframework.util 패키지에 있는 StringUtils 클래스를 살펴보자. API 문서 http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/util/StringUtils.html 스트링 관련 잡단한 메서드들이 있다. 스프링 프레임웍 내부에서 사용하기 위해서 만들었는 데 Jakarta’s Commons Lang의 스트링 유틸리티들의… Read More »

스프링(spring) 어플리케이션(application) 시작시 원하는 메서드가 실행되도록 하는 방법

By | 10월 25, 2011

1. ApplicationListener 구현 import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationListener; public class Test implements ApplicationListener{ //변수와 setter를 선언하여 bean xml 로부터 값을 넘겨받을 수 있다. String var1; public void setVar1(String var1) { this.var1 = var1; } //스프링 시스템 기동시 수행 public void onApplicationEvent(ApplicationEvent applicationevent) { System.out.println(“### Test.onApplicationEvent() > var1 : “+ var1 +”###”); } } * implements 할… Read More »

Spring에서 트랜젝션 내에 별도의 트랜젝션을 가져가는 방법 (Spring 2.5 / 어노테이션 기반 트랜젝션)

By | 6월 22, 2011

어노테이션 기반 트랜젝션 (예:<tx:annotation-driven/>) 에서 어떤 클래스에 @Transactional 이 선언되어 있고 이 클래스는 다음과 같은 메서드를 가진다고 할 때 메서드A(){          for(int i=0; i<10; i++){         메서드B();     }  } 메서드A()는 스프링의 프록시로 감싸져 있기 때문에 Exception 발생시 롤백이 가능하지만, 그 안에 있는 메서드B()는 현재 개별적인 트랜젝션처리(각 루프별 독립적 롤백)가 불가능한 상태이다. 이 경우에는 다음과 같이… Read More »

ibatis 에서 쿼리 문장 내에 #이 포함되어 있을 경우 escape 방법

By | 6월 21, 2011

select ‘#ABC’ from dual  위와 같은 SQL문을 ibatis로 실행하려 할 경우, ibatis는 #이후를 바인딩 변수로 인식하려 하기 때문에 오류를 발생시키게 된다. 이 경우는 #앞에 #을 한 번 더 붙여 주면 첫 번째 #은 escape character로만 작용하고 이후 #을 일반 문자열로 인식하게 된다. select ‘##ABC’ from dual