date값을 controller에서 받지 못 합니다.
- 작성자 :
- 이*섭
- 작성일 :
- 2014-10-19 22:56:30
- 조회수 :
- 4,181
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
controller에서 date값을 변환하지 못 하고 오류처리됩니다.
<form>태그에서 <input type="text" name="orddt" value="2014-10-23"/>로 넣었습니다.
[controller 코드]
@RequestMapping(value="/addTeorder.do", method=RequestMethod.POST)
public String addTeorder(@ModelAttribute("searchVO") TeorderDefaultVO TeorderSearchVO, TeorderVO teorderVO,
BindingResult bindingResult, Model model, SessionStatus status)
throws Exception {
// Server-Side Validation
beanValidator.validate(teorderVO, bindingResult);
if (bindingResult.hasErrors()) {
LOGGER.debug("hasErrorsonBinding:"+bindingResult);
model.addAttribute("teorderVO", teorderVO);
return "sample/index";
}
teorderService.insertTeorder(teorderVO);
status.setComplete();
return "forward:/selectTeorder.do";
}
[오류메시지]
[typeMismatch.teorderVO.orddt,typeMismatch.orddt,typeMismatch.java.sql.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [teorderVO.orddt,orddt]; arguments []; default message [orddt]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Date' for property 'orddt'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.sql.Date] for property 'orddt': PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] returned inappropriate value of type [java.util.Date]]
참고로, 개발환경은 eGovframework sample3.1 eclipse그대로 이며, EgovBindingInitializer.java가 원래 그대로 작성되어 있으나
이것이 효과가 없는듯 합니다.
구체적으로 알려주시면 감사하겠습니다.~~
<form>태그에서 <input type="text" name="orddt" value="2014-10-23"/>로 넣었습니다.
[controller 코드]
@RequestMapping(value="/addTeorder.do", method=RequestMethod.POST)
public String addTeorder(@ModelAttribute("searchVO") TeorderDefaultVO TeorderSearchVO, TeorderVO teorderVO,
BindingResult bindingResult, Model model, SessionStatus status)
throws Exception {
// Server-Side Validation
beanValidator.validate(teorderVO, bindingResult);
if (bindingResult.hasErrors()) {
LOGGER.debug("hasErrorsonBinding:"+bindingResult);
model.addAttribute("teorderVO", teorderVO);
return "sample/index";
}
teorderService.insertTeorder(teorderVO);
status.setComplete();
return "forward:/selectTeorder.do";
}
[오류메시지]
[typeMismatch.teorderVO.orddt,typeMismatch.orddt,typeMismatch.java.sql.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [teorderVO.orddt,orddt]; arguments []; default message [orddt]]; default message [Failed to convert property value of type 'java.lang.String' to required type 'java.sql.Date' for property 'orddt'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [java.sql.Date] for property 'orddt': PropertyEditor [org.springframework.beans.propertyeditors.CustomDateEditor] returned inappropriate value of type [java.util.Date]]
참고로, 개발환경은 eGovframework sample3.1 eclipse그대로 이며, EgovBindingInitializer.java가 원래 그대로 작성되어 있으나
이것이 효과가 없는듯 합니다.
구체적으로 알려주시면 감사하겠습니다.~~
A
안녕하세요. 이용섭님.
EgovBindingInitializer와 같은 WebBindingInitializer의 역할을 String 형태의 Http request parameter를 매핑되는 VO의 다른 유형(Date 등)에 변환을 해주는 역할로 이용섭님의 경우 적용이 필요합니다.
다만, VO 상에 Date 객체에 대하여 java.util.Date type으로 지정하셔야 하는데, java.sql.Data type으로 지정하셨기 때문에, 변환되면서 오류가 발생한 것입니다. VO의 유형을 java.util.Date로 변경하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
EgovBindingInitializer와 같은 WebBindingInitializer의 역할을 String 형태의 Http request parameter를 매핑되는 VO의 다른 유형(Date 등)에 변환을 해주는 역할로 이용섭님의 경우 적용이 필요합니다.
다만, VO 상에 Date 객체에 대하여 java.util.Date type으로 지정하셔야 하는데, java.sql.Data type으로 지정하셨기 때문에, 변환되면서 오류가 발생한 것입니다. VO의 유형을 java.util.Date로 변경하시면 되실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.