2014-01-28 105 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

你是什麼意思?背豆不是很精確。它應該做什麼? –