2013-08-20 27 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声明发送给用户实体。

相关问题