2014-01-28 39 views
1

我有点不确定如何以最佳方式设计复杂的Spring MVC应用程序。 该问题与用户管理系统有关。我的UserVO实现了Spring的UserDetails接口。如何在Spring MVC中为请求,响应和实体处理DTO

但是对于请求和响应,只需要特殊部分的信息。 在请求中,它应该被允许发送密码以改变它。但是像'enabled','expired','locked'这样的标志显然不应该由用户改变。 另一方面,这个信息应该显示给用户,所以必须包含在响应中。密码永远不会发送给客户端。

我开始在setter和getter上使用JsonIgnore和JsonAttribute Annotations。但由于这些标志是布尔值,所以每次更新时它们都保持默认值'false'。

可能的解决方案:为响应以及请求写入DTO,并使用Spring的ObjectMapper来保存它们。这是正确的方法吗?如果我能和我的VO一起工作并设置一些神奇的注释,我会感觉更舒服,如果你知道我的意思;)

回答

0

你可能需要一个支持form的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> 

在控制器,你的方法将接收作为所述的ModelAttribute对象UserBacking。

+0

你是什么意思?背豆不是很精确。它应该做什么? –