我有一个很大的表单,有很多日期字段和int字段我的行动阶段方法是这样的:
public void createCamapign(WebRequest request,ActionResponse response ,
Model model, @ModelAttribute("searchForm") CreateCampaignForm form) throws Exception{
无论如何,如果我没有填充渲染表单中的所有字段,表单是我的包装bean我的应用程序崩溃与此错误
[org.springframework.web.portlet.DispatcherPortlet] - 处理程序执行导致异常 - 转发到已解析的错误视图org.springframework.validation.BindException:org.springframework.validation.BeanPropertyBindingResult:1 errors对象'searchForm'中的字段错误字段'activationDate':拒绝值[];代码[typeMismatch.searchForm.activationDate,typeMismatch.activationDate,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable:codes [searchForm.activationDate,activationDate];参数[];默认消息[activationDate]];默认消息[无法将类型'java.lang.String'的属性值转换为属性'activationDate'所需的类型'java.util.Date';嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为属性'activationDate'所需的类型[java.util.Date]:找不到匹配的编辑器或转换策略]
如何或在哪里指定这些字段在int字段的情况下是可选的我有点通过使用Integer类来解决它,但我不想对Date类型属性做同样的事情
2 回答
我不确定我是否正确理解你的问题 . 我不是 Spring 天的专家 . 只是一个建议,就像你可以使用依赖检查和@Required注释来使一些字段必要和其他可忽略的 .
您可以尝试将DateTimeFormat注释放在日期字段上,如下所示:
注意:如果您使用的是早于3.2的Spring版本,则需要将 joda date library添加到项目类路径中