我对如何以最佳方式设计复杂的Spring MVC应用程序有点不确定。 该问题与用户管理系统有关。我的UserVO实现了Spring的UserDetails接口。
但是对于请求和响应,只需要特殊部分的信息。 在请求中,应该允许它发送密码以进行更改。但是“启用”,“过期”,“锁定”等标志显然不会被用户改变。 另一方面,该信息应显示给用户,因此必须包含在响应中。密码永远不会发送给客户端。
我开始在setter-和getter上使用JsonIgnore和JsonAttribute Annotations。但由于标志是布尔值,因此每次更新时它们都会以默认值'false'保留。
可能的解决方案:为响应和请求编写DTO,并使用Spring的ObjectMapper来持久化它们。这是正确的方法吗?如果我能够与我的VO合作并设置一些神奇的注释,如果你知道我的意思,我会感觉更舒服;)
答案 0 :(得分:0)
您可能需要一个表单支持bean。你会在互联网上找到大量的例子。
编辑:
用户示例。您的表单包含用户名,更改密码的字段和重新确认密码的字段。 用户名是用户POJO,其中包含与您的用户相关的所有数据。
要从表单中捕获密码和密码确认(以及从用户POJO公开的所有其他数据,您需要一个表单支持bean)。
public class UserBacking {
private String newPsw;
private String confirmPsw;
private User user;
}
以您的形式
<form:form action="${postUrl}" commandName="userBacking " method="POST">
<!-- Fields goes here -->
</form>
在Controller中,您的方法将以ModelAttribute的形式接收UserBacking对象。