본문 바로가기

Spring

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

반응형
스프링에서 커스텀 데이터 처리할 때 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 와 같은 형식으로 입력하세요.



반응형