Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSTL-如何解析输入日期_Java_Jsp_Spring Mvc_Jstl - Fatal编程技术网

Java JSTL-如何解析输入日期

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

我的jsp中有一个日期输入字段,如下所示:

此表单映射到一个日期定义如下的
@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)
添加到消息中即可。