javascript string prototype 함수인 includes() 사용시 주의
모바일 사이트에서 사용해 보았는데, 잘 되는 것 같더니 특정 안드로이드 모바일 브라우저에서 작동하지 않는 현상이 있었다. 이럴거면 얘는 걍 쓰지 말자. 대신 호환성 좋은 indexOf() 를 사용하자!
모바일 사이트에서 사용해 보았는데, 잘 되는 것 같더니 특정 안드로이드 모바일 브라우저에서 작동하지 않는 현상이 있었다. 이럴거면 얘는 걍 쓰지 말자. 대신 호환성 좋은 indexOf() 를 사용하자!
– 출처: http://kdarkdev.tistory.com/105 – 별도의 모델이나 컨트롤러가 없이 URL요청이 왔을때 뷰로 연결만 해주는 경우는 굳이 컨트롤러가 필요없이 <mvc:view-controller>태그를 사용하면 URL과 뷰를 매핑해 줄 수 있습니다. 아래의 태그는 /common/gg 라는 URL을 요청 받았을때 gg라는 뷰 이름을 리턴 받게 됩니다 만약 InternalResourceViewResolver 에서 prefix/suffix가 각각 /WEB-INF/jsp/ 와 .jsp 라고 가정 한다면 결과적으로 /WEB-INF/jsp/gg.jsp 라는 jsp view를 찾게 됩니다. <mvc:view-controller path=”/common/gg”… Read More »
spring profile 을 사용하여 환경에 맞게 deploy 하기 Spring profile 기능으로 운영/개발 환경 구성하기 Spring Profiles example
=> 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 »