0

我有一个用户实体:

@Entity
@Table(name = "user")
public class User implements Serializable{
private enum Sex {MALE, FEMALE};

@Id @GeneratedValue
private Long id;
@NotNull
private String name;
    @NotNull
    private String password;
}

控制器:

@Controller
public class HomeController {
@RequestMapping("/addUser")
public String showHomePage(Map<String, Object> map) {
    map.put("user", new User());
    return "addUser";
}

并在jsp文件中形成

<form:form method="post" action="add" commandName="user"> 
     <form:input path="name"/>
     <form:input path="password"/>
     <form:input path="confirm-password"/>
</form:form>

此表单会生成错误,因为confirm-password. User.class我当然可以添加confirm-password字段 as @Transientto User.class,但是如果我想在我的表单中添加验证码字段怎么办。是否有其他方法可以向表单添加其他字段?

4

1 回答 1

0

将模型用作表单实体不是一个好习惯。您应该有一个 bean 或表单类来从视图和另一个模型中获取数据。

原因是它们有不同的职责,因此需要映射到不同的类。它们通常非常相似,但这种分离促进了更清晰的编码并避免了安全漏洞,因为用户可以尝试通过使用请求篡改器(如 fire bug)从视图中使用您的模型变量。

它们之间的这些微小差异就像您上面列出的那样证明了创建另一个类是合理的。

于 2012-05-04T18:46:37.953 回答