Java JSTL-如何解析输入日期
我的jsp中有一个日期输入字段,如下所示:Java JSTL-如何解析输入日期,java,jsp,spring-mvc,jstl,Java,Jsp,Spring Mvc,Jstl,我的jsp中有一个日期输入字段,如下所示: 此表单映射到一个日期定义如下的@modeldattribute帐户: private java.util.Date 当我提交表格时,我得到一个错误(当然),上面写着: 无法将java.lang.String类型的属性值转换为必需的 键入java.util.Date 请建议一种方法,我可以在JSP本身中解析date,这样@modeldattribute就可以直接用值设置date字段,就像在本例中一样: @Controller public class
此表单映射到一个日期定义如下的@modeldattribute
帐户
:
private java.util.Date代码>
当我提交表格时,我得到一个错误(当然),上面写着:
无法将java.lang.String类型的属性值转换为必需的
键入java.util.Date
请建议一种方法,我可以在JSP本身中解析date
,这样@modeldattribute
就可以直接用值设置date
字段,就像在本例中一样:
@Controller
public class MyFormController {
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class,
new CustomDateEditor(dateFormat, false));
}
// ...
}
“这确实有帮助,”xaerxess说。谢谢你能再帮我一点吗?绑定对我来说工作得很好,但是当输入字段中有不可解析的日期时,它会抛出此异常:无法解析日期:不可解析的日期:
这直接输入到绑定结果中,因此它会出现在jsp中。我不希望用户看到此错误。如何发出自定义错误?如果用户输入了无效的日期字符串,您想怎么做?我想显示一个更容易理解的错误。比如说,“您输入的日期无效”,而不是一些java异常。只需将typeMismatch.java.util.date=您输入的日期无效(日期格式应为yyyy-mm-dd)
添加到消息中即可。