我的实体User
有username
,name
等...
User
也有password
属性。我在列表/节目表单中禁用了它的渲染,但在更新表单中,字段设置为type="password"
。
让我感到不安的是,如果没有重新输入密码,则无法更新用户,因为没有星标,如果您没有输入密码,password
设置为null
或{ {1}}。
我该如何绕过它?
还有另一个问题。如果我从更新表单中删除某些字段,则所有其他字段都将设置为""
。
我想要的是让用户能够更新某些权利的某些领域,而不是所有领域。
答案 0 :(得分:1)
我创建了一个实体 Foo ,其中包含四个字段 f1,f2,f3 和 f4 。
在此实体的 update.jspx 中,我为字段 f1 设置了属性 render =" false" 。
在 FooController 更新方法中,在 foo 参数对象更新之前,我从数据库中获取旧值并将其粘贴在参数 foo < / strong>,如下所示,因为我们不希望最终用户更新此字段。
Foo fromDB=Foo.findFoo(foo.getId());
foo.setF1(fromDB.getF1());
foo.merge();
我可以验证更新操作完成后Foo实体中 f1 的旧值没有改变。
这可能是阻止用户更新实体对象中某些字段的一种方法,并希望这种方法适合您。
干杯,