Spring尝试绑定所有字段

时间:2010-09-23 08:07:51

标签: java spring spring-mvc

使用Spring 3

我有两种形式:添加项目和使项目无效 我有ItemAddEditCommand引用Item和其他一些数据。

添加项目效果很好但我在使项目无效时遇到问题。通常,它是一个包含两个表单字段的编辑表单 - expirationDate和comment。

在控制器中,我对两个动作使用相同的命令。不幸的是,当我失效时,Spring会尝试绑定所有字段。当开始无效时,我使用Item实例填充ItemCommand,该实例填充了所有可能的字段(包括id)

当用户插入expireDate并注释并提交表单时,除了expiresDate和comment之外的所有其他字段都将为空。

除了创建另一个命令

之外还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

我想我找到了它。

@InitBinder(value = { INVALIDATE_ITEM_PARAM })
protected void initInvalidateItemBinder(WebDataBinder binder) {
  DefaultBindInitializer.initBinder(binder);
  binder.setAllowedFields("expireDate", "comment");
  binder.setValidator(validator);
} 

顺便说一下。也许任何人都可以指点如何摆脱DefaultBindInitializer.initBinder(binder);初始化一些应该始终使用的属性编辑器。也许有一些bean可以使它默认,所以我不必一直调用这个方法。