1

我有一个包含很多日期字段和 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 错误字段上对象“searchForm”中的字段错误'activationDate': 拒绝值 []; 代码 [typeMismatch.searchForm.activationDate,typeMismatch.activationDate,typeMismatch.java.util.Date,typeMismatch]; 参数 [org.springframework.context.support.DefaultMessageSourceResolvable:代码 [searchForm.activationDate,activationDate];论据 []; 默认消息 [activationDate]];默认消息 [无法将类型“java.lang.String”的属性值转换为属性“activationDate”所需的类型“java.util.Date”;嵌套异常是 java.lang.IllegalStateException:

在 int 字段的情况下,我如何或在哪里指定这些字段是可选的,我通过使用 Integer 类解决了它,但我不想对 Date 类型属性做同样的事情

4

2 回答 2

0

我不确定我是否正确理解了您的问题。我不是 Spring 方面的专家。只是一个建议,例如您可以使用依赖项检查和@Required 注释来使一些字段成为必需字段,而其他字段可以忽略。

于 2013-09-08T15:26:42.650 回答
0

您可以尝试将DateTimeFormat注释放在日期字段上,如下所示:

 @DateTimeFormat(pattern = "dd/mm/yyyy")  // put any pattern you want
 private Date myDate;

注意:如果您使用的 Spring 版本早于 3.2,则需要将joda日期库添加到项目类路径中

于 2013-09-08T21:14:45.500 回答