Spring MVC表单使用modelAttribute提交

时间:2013-03-26 18:52:29

标签: java spring spring-mvc

我有类似

的东西
@RequestMapping("/showRegister")
public String showUserRegistrationForm(ModelMap modelMap) {
    modelMap.addAttribute("user", new UserBean());
    return "Register";
}

@RequestMapping("/RegisterUser")
public String registerUser(@ModelAttribute("user") UserBean userBean,
        BindingResult result, ModelMap modelMap) {
    System.out.println(userBean.getPassword());
    return "Register";
}

在我的代码中。

以上工作完美。现在假设我想将模态数据从表单保存到多个表中,每个表都有自己的POJO类。那么代码如何才能不仅接收UserBean作为modelattribute而且接收其他类。我是否必须创建一个包含来自两个类的数据的新POJO,或者还有其他方法。

修改

我读到了DTO。但它不是重复POJO的。我们不能使用2-3 POJO的混合。

1 个答案:

答案 0 :(得分:1)

你可以创建一个“表单”bean,并将你的UserBean和任何其他pojos作为成员添加到它。我实际上更喜欢这样做,因为它使复杂的验证更容易,更自包含。

public class MyFormBean {

private UserBean userBean;
private MyOtherBean otherBean;

// Add getters and setters as needed

}

然后,您的表单需要引用正确的路径以深入查看对象。  如果你有类似的东西:

<form:input path="name" />

您可以将其更改为

<form:input path="userBean.name" />