我在使用多个数据库表时遇到问题 我有什么:
输入:用户(表用户) 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";
}
答案 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";
}