我正在使用 Spring 3.1.1.RELEASE。我想在我的模型的 java.util.Date 字段中自定义为无效日期格式显示的错误消息。这是模型……</p>
public class ContractForm
{
…
private Date activationDate;
private Date expirationDate;
…
}
我的属性包中有这个设置……</p>
typeMismatch.ContractForm.activationDate=The activation date format should be of the form MM/dd/yyyy
typeMismatch.ContractForm.expirationDate=The expiration date format should be of the form MM/dd/yyyy
而且我已经在我的控制器中注册了一个自定义的 java.util.Date 编辑器……</p>
@InitBinder
public void initBinder(WebDataBinder binder) {
final DateFormat dateFormat = new SimpleDateFormat(Contract.DATE_FORMAT);
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
...
}
但是,当我提交带有无效日期的表单时,我没有收到我想要的错误消息,而是收到类似“无法将 java.lang.String 类型的属性值转换为所需的 java.util.Date 类型的属性激活日期;嵌套异常是 java.lang.IllegalArgumentException:无法解析日期:无法解析的日期:“02012013”'
如何获得我想要的错误信息?