我正在开发我的第一个 Spring 3 webapp。在 Spring 2 中,我们曾经让 formBackingObject 从数据库中加载数据,然后让 Spring 绑定更新一些字段,然后 onSubmit 会持久化这些更改。
在 Spring 3 中,我似乎有两个选择:
- 让用户编辑 100% 的持久对象。这意味着对象的 ID 需要是隐藏字段
- 创建一个包含可编辑数据的表单对象,然后在提交时将其映射到持久对象
第一个选项并不是一个真正的选项,我们不能让用户编辑所有字段,我们宁愿不要在任何能够按 F12 的人都可以更改值的隐藏字段中显示数据。
第二种选择似乎是一种不错的设计方法。但是,它似乎需要基本上克隆每个可编辑的持久类。
@Entity
public class Company {
private String uuid; // not editable!
.. 30 other properties, 2 are not editable
}
public class CompanyForm {
.. 28 of above properties
}
然后一些映射机制有很多
public void map(CompanyForm cf, Company c) {
cf.setName(c.getName());
.. 27 other set(get())
}
我祈祷这不是 Spring 的 MVC 绑定的“设计”方法。但是,到目前为止,我发现的所有教程都非常琐碎,并且从上面实现了选项 1。有人对实施选项 2 有什么建议吗?
谢谢,西蒙