uknowapps

uknowapps.egloos.com

포토로그



Spring에서 커스텀 데이터 처리할 때 java.sql.Date 처리하기 Spring

Spring에서 커스텀 데이터 처리할 때 java.sql.Date 처리하기

1. java.util.Date 타입을 변환할 때는 new SimpleDateFormat("yyyy-MM-dd") 를 이용해
파싱 규칙을 만들면 되지만 java.sql.Date의 경우는 SimpleDateFormat를 사용할 수 없다.
java.sql.Date 타입을 사용해야 할 경우는 SimpleDateFormat를 상속받아 java.sql.Date 타입으로
파싱할 수 있도록 커스터마이징 해준다.

1) DateFormatUtil 작성

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class DateFormatUtil extends SimpleDateFormat{

 public DateFormatUtil(String pattern) {
  super(pattern);
 }

 @Override
 public java.sql.Date parse(String date) {
  java.util.Date u_date = null;

  try {
   udate = super.parse(u_date);
  } catch (ParseException e) {
   e.printStackTrace();
  }

  return new java.sql.Date(udate.getTime());
 }
}

===========================================

형식이 yyyy-MM-dd 의 형식이면 데이터가 처리되지만
형식에 맞지 않을 경우 폼으로 돌려보내고 아래 resource bundle의 메시지
typeMismatch.register 를 호출해서 에러 메시지를 처리함

Controller
==================================
Date 타입 처리

@InitBinder
protected void initBinder(WebDataBinder binder){
DateFormat dateFormat = new DateFormatUtil("yyyy-MM-dd");
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat,true));//true null값 허용, false null값 불허
}

resource bundle
==================================
typeMismatch.register=등록일은 (예) 2013-01-02 와 같은 형식으로 입력하세요.

덧글

댓글 입력 영역



애드센스 수평