多个表中的值弹簧验证概率

时间:2017-02-14 12:19:17

标签: java spring validation multiple-tables

我在使用多个数据库表时遇到问题 我有什么:

输入:用户(表用户) Inputfeld:电子邮件(表用户) 输入:Bookingnumber(表Bookingnumber)

仅使用输入字段表格" user"工作,从其他表添加bookingnumber会抛出此错误:

Invalid target for Validator     [shuttleservice.form.validator.UserFormValidator@1588512]:   shuttleservice.form.model.Bookingnumber@18d7616

问题与此类似 How insert values to multiple tables using spring and hibernate

Invalid target for Validator in spring error?

我只有两种形式 一个输出,只显示数据库数据 一个带有多个数据库表字段的输入

我应该使用多个验证器吗?

// show add user form
@RequestMapping(value = "/users/add", method = RequestMethod.GET)
public String showAddUserForm(Model model) {

    logger.debug("showAddUserForm()");

    User user = new User();
    Bookingnumber bookingnumber = new Bookingnumber();

    // set default value
    user.setName("setNewUserName");     
    user.setEmail("test123@gmail.com");

    bookingnumber.setBookingnumber("123.456");

    model.addAttribute("userForm", user);
    //model.addAttribute("bookingnumberForm", bookingnumber);
    model.addAttribute("userForm", bookingnumber);


    populateDefaultModel(model);
System.out.println("#8");
    return "users/userform";

}

1 个答案:

答案 0 :(得分:0)

创建一个模型类来包装所有表单字段,并将此新包装类的对象传递给表单。然后编写一个验证器类来验证字段。

private class FormModel {
    private User user;
    private BookingNumber bookingNumber;

    //Getter Setter ....
}

// show add user form
@RequestMapping(value = "/users/add", method = RequestMethod.GET)
public String showAddUserForm(Model model) {

    logger.debug("showAddUserForm()");
    FormModel formModel = new FormModel ();
    User user = new User();
    Bookingnumber bookingnumber = new Bookingnumber();

    // set default value
    user.setName("setNewUserName");     
    user.setEmail("test123@gmail.com");

    bookingnumber.setBookingnumber("123.456");
    formModel.setUser(user);
    formModel.setBookingNumber(bookingNumber);
    model.addAttribute("formModel", formModel);
    return "users/userform";
}