我有用于在Web应用程序中编辑用户的表单。如果用户角色是导演,我希望他们能够使用表单编辑用户对象上的所有属性。但是,如果用户角色是中级角色而不是导演,我只希望他们编辑用户对象上的大部分/部分属性 - 而不是其他角色。
当然,如果他们不是导演,我很容易隐藏我不希望他们编辑的字段的html标记,但这不够安全。当用户角色不是Director时,如何告诉spring MVC过滤http post参数而不将它们设置在表单后备对象上?我可以这样做吗?我知道我可以使用@InitBinder作为“全部捕获”的情况,但我不认为我可以在每个请求的基础上使用它...我可以吗?
我知道Rails最近刚刚在他们的框架的最新版本中添加了这个功能,所以如果Spring没有它,我也不会感到惊讶。用Spring实现这个很容易吗?
如果没有内置框架支持,那么最简单的方法是什么?为表单支持对象创建一个全新的类型,只是在更新期间手动复制所有字段?当我想添加新字段时,这看起来有点臃肿,不太可维护......但我想不出任何其他解决方案。
由于
答案 0 :(得分:1)
Submitting / binding partial objects with spring mvc
似乎有类来表示具有User类属性的不同子集的不同表单可能是最简单的方法。至少您不必手动复制一个属性,因为您可以使用: