forms - Spring MVC - 部分绑定(bind)到表单时如何不丢失字段值

标签 forms spring data-binding spring-mvc

我想为一个 bean X 创建一个更新表单。这个 bean 可以说它有字段 A、B、C、D。 在我的表单中,我只想更新字段 A、B,并保持 C 和 D 不变。 有没有办法将 bean X 绑定(bind)到仅包含字段 A 和 B 的更新表单,这样当我提交表单 C 和 D 时就不会更改?

我知道我可以为 C 和 D 添加隐藏字段,但如果这些不是原始字段,而是其他 bean 或集合,该怎么办。

我知道另一个解决方案是创建一个仅包含字段 A 和 B 的 XUpdateBean,并在表单提交后将字段从 XUpdateBean 复制到我的 X bean。

在 Spring 3 MVC 中是否有其他方法可以更好地进行此更新?

最佳答案

您可以拥有一个仅包含您需要的字段的 command-Object/form-b​​arking-Bean。

在 Controller 中,您必须加载 bean X,并且需要使用 commandObject 中的字段更新其字段。

也许您也可以考虑不为 commandObject 提供额外的类,而是使用 BeanX 类。但是,当然您需要 BeanX 的两个实例,一个用于 commandObject,另一个用于 bean x。

关于forms - Spring MVC - 部分绑定(bind)到表单时如何不丢失字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9502808/

相关文章:

wpf - 如何为 WPF 中的单选按钮绑定(bind) Checked 事件?

javascript - 使用 javascript 进行表单验证。仅接受文本区域中的文本

java - 将参数传递给来自 xml 的不同切入点的相同切面方法

java - 在测试期间排除 Spring Boot 中的 ApplicationListener @Component

spring - 使用 Spring Data REST 和 MongoDB 访问和更新关联资源

javascript - <br> Angular 表达之间

Angular 4 : how can I bind dynamically input attribute of subcomponent

c++ - C2143 : syntax error: missing ';' before '*' & C4430: missing type specifier - int assumed. 注意:C++ 不支持default-int

javascript - 如果重新访问如何关闭上一页

javascript - 如果 django 表单提交失败则运行 javascript