2013-08-20 59 views
1

必填字段我有實體:實體不具有表單對象

public class User { 
    private Long id; 
    private String name; 
    private String lastName; 
    private String email; 
    private String password; 

    // getters and setters 
} 

我想用它作爲展示層表單支持對象,但它沒有我需要的字段。在這種情況下,我需要重複密碼字段。

在不修改實體類的情況下解決此問題的最佳方法是什麼?
我是否應該擴展此實體類並添加所需的字段?
我應該創建一個具有getter和setter字段private User user;的新類嗎?
我應該複製/粘貼此類,然後添加所需的字段?

+1

繼承它並添加所需的字段是OOPS的方法。 – JNL

+0

海事組織你應該創建一個新的類與所有這些領域和額外的。表單對象是數據傳輸對象。您將使用它在您的圖層或模塊之間傳輸數據。 –

+0

您不應該有任何問題將此映射爲表單支持對象。只要不綁定重複的密碼字段,並驗證重複密碼匹配在客戶端JavaScript。 –

回答

1

三種不同的解決方案:

  • 處理的情況下形式不與實體匹配的輸入字段是使用Command對象的通常的方法(這就是索蒂里奧斯是在評論中提倡)。爲這個不是實體的單獨對象創建一個單獨的對象比擴展實體添加一些與持久性無關的東西要困惑得多。

  • 有人認爲在這種情況下,不需要將repeatedPassword字段傳遞迴服務器,驗證可以完全在客戶端完成,並且輸入字段不需要綁定到Java pojo所有。

  • 如果您確實想將repeatedPassword傳回服務器(這樣您就可以在服務器上完成所有驗證 - 儘管重複密碼比實際驗證更方便用戶使用),然後您可以添加repeatedPassword字段通過@Transient聲明發送給用戶實體。

相關問題