Spring MVC - 清算领域

时间:2011-03-23 19:43:22

标签: java spring-mvc

我有一个域对象,我在一个典型的表单上呈现。这是一个简化的例子:

public class Name implements Keyed {

    private String firstName;
    private String middleName;
    private String lastName;
    private Number key;

    //Getters and Setters
}

假设我有两种类型的用户,每个用户都可以修改这些Name对象。出于某种愚蠢的原因,不允许一个组查看/编辑用户的中间名。所以我将该字段从表单中删除(也没有隐藏字段)。

反正是否要让Spring清除那个中间名字段?我可以为此创建一个新对象,但它似乎不需要重复。

是否有办法保留尚未修改的数据(即未向用户显示,因此无法更改)?

2 个答案:

答案 0 :(得分:0)

您可以在会话中存储中间名(对于只读用户)并在表单提交时检索它。

答案 1 :(得分:0)

似乎用弹簧绑定这根本不可能。您基本上被迫创建域对象的近似副本,并删除不在页面本身上显示的字段。虽然不幸,但它只是弹簧绑定的工作原理,因为在调用方法之前,spring会为你创建一个新实例。