DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
CustomDateEditor dateEditor = new CustomDateEditor(fmt, true);
binder.registerCustomEditor(Date.class, dateEditor);
数据绑定没有问题,但是客户提交数据时,输入字母或者非yyyy-MM-dd格式的字符串,比如输入dd,
Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property time; nested exception is java.lang.IllegalArgumentException: Could not parse date: Unparseable date: "dd"
问题是,如何才能将这样的错误信息变成自己想要的字符提示.本人已经试过在Validator里验证,判断当为fieldError时error.rejectValue(),但发现我想要的错误提示却跟在先前的IllegalArgumentException提示的后面一起弹出,极度郁闷!
public class MyBindingInitializer implements WebBindingInitializer {
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); //可以設定任意的日期格式
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class,
new CustomDateEditor(dateFormat, true));
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
}
/**
* 注册java.util.Date类型
*
* @param binder
*/
@InitBinder
public void initBinder(WebDataBinder binder) {
DateFormat dateFormat = new SimpleDateFormat(AppDateUtils.yyyyMMdd);
binder.registerCustomEditor(java.util.Date.class, new CustomDateEditor(dateFormat, true));
}