Spring MVC 를 사용하여 REST 웹서비스 구축시 "The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler" 에러가 발생할 경우
=> Controller 클래스에 @EnableWebMvc 를 붙여 주어야 한다.
=> Controller 클래스에 @EnableWebMvc 를 붙여 주어야 한다.
@Autowired(required = false) //bean이 없어도 오류를 발생시키지 않음@Qualifier(“blablaService”) //이 이름으로 bean을 참조하겠다
@Service(“blablaService”)
ctx(ApplicationContext)를 얻어와서 아래와 같은 setting method를 호출해 준다. ctx.registerShutdownHook();
Properties props = new Properties(); try{ props.load(new FileInputStream(ResourceUtils.getFile(“classpath:config/properties/test.properties”))) //classpath 기준으로 찾을 경우 //props.load(new FileInputStream(ResourceUtils.getFile(“file:C:/project/src/main/resources/config/properties/test.properties”))) //파일시스템 기준으로 찾을 경우 }catch(IOException e){ e.printStackTrace(); } String testValue = props.get(“testKey”); * 이러한 류의 작업은 File I/O를 사용하기 때문에 시스템 기동부나 테스트코드에서 사용해야지, 자주 반복되는 구간에서 사용해서는 안된다.
– 화면 입력값 유효성 검사 – 화면 입력값 형태 가공 및 변환 – 서비스 호출 결과를 화면에 출력해 주기 위한 데이터 가공 및 변환, 바인딩 … 생각 나는대로 계속 나열해 보자~
1. 어노테이션 인터페이스 작성 @Retention(RetentionPolicy.RUNTIME) @Target(value = {ElementType.TYPE, ElementType.METHOD}) //클래스 혹은 메서드에 어노테이션 적용 public @interface SslCheck { boolean isBlock() default false; //어노테이션에 인수를 입력받아 활용하고 싶을 경우 메서드 정의 } 2. HandlerInterceptorAdapter를 상속받은 인터셉터 클래스를 작성하면서 어노테이션을 활용 public class SslCheckInterceptor extends HandlerInterceptorAdapter { //주로 preHandle()에 로직을 작성할 것이다. @Override public… Read More »
만약 ViewResolver로서 UrlBasedViewResolver를 상속받은 ViewResolver를 사용하고 있다면, ViewResolver의 xml 정의에 아래와 같이 redirectHttp10Compatible 멤버를 false로 셋팅해 주면 된다. <bean class=”org.springframework.web.servlet.view.UrlBasedViewResolver” id=”tilesViewResolver”> <property name=”viewClass” value=”org.springframework.web.servlet.view.tiles3.TilesView” /> <property name=”redirectHttp10Compatible” value=”false” /> </bean>
<if test=”@org.apache.commons.lang3.StringUtils@isNotEmpty(str)”> AND DEL_YN = ‘Y’ /* 조건절 샘플 */ </if>
– 출처 : 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 »
* 그리드의 특정 칼럼에 툴팁(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 »
ds1.row = i; //i행으로 이동 grd1.SetCellPos(7); //7열로 이동 grd1.showEditor(true); //에디트모드를 활성화한다.
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 »
(1) 그리드 셀의 display, edit 속성을 모두 date로 설정한다. (2) mask 속성에 다음과 같은 마스크를 준다. (시간mask의 대문자는 24시간 표현법) (예: yyyy-MM-dd HH:mm:ss)
Case 1. 가장 흔한 경우로, 바인딩변수 메타문자인 #을 열어놓고 닫지 않은 경우이다. (ex: #userId => #userId#) 내 경험상 이럴 때는 컴파일단계에서 오류가 발생했던 것 같다. Case 2. 이 경우는 좀 드문 경우였는데, 쿼리 내에서 괄호() 를 정상적으로 열고 닫지 않았을 경우에 발생했다. 내 경우에는 NVL()함수를 사용하는데 앞… Read More »
@RequestMapping(value={“/”, “aaa”, “bbb”}) * 참고 링크 http://stackoverflow.com/questions/2513031/multiple-spring-requestmapping-annotations
– 출처 : 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 »
– SQL 주석 내부에 #가 있지 않나 확인해 보자- SQL 주석 내부에 ?가 있지 않나 확인해 보자
FirstRow란 Server측에서 보내는 Data를 화면에서 Block 단위 ( 예 : 100 record ) 만큼 화면 에 미리 보여주고 나머지 Data는 계속 받아내리는 형태의 Data처리 방법을 의미합니다. FirstRow를 처리하는 기본원리는, Service측에서 보내고자 하는 Data를 Block단위로 보내고 Client측에서는 Dataset의 Property를 조정합니다.
Data > Protocol > http > UserWaitCursor 을 false 로 셋팅한다.