在我的 jsp 中,我使用 spring 表单标签来绑定和更新数据。
我的方案是在用户进入页面时显示默认值。这些默认值应根据某些条件来自数据库。但是当用户编辑数据并提交时,我想将它们保存在数据库中而不更新默认值。
非常感谢任何建议!
表单页面的标准方法是使用具有两种方法的控制器,一种用于 GET,一种用于 POST。您还需要一个对象来绑定到表单。
处理 GET 的方法设置绑定对象并将其放入模型中,然后返回表单页面的视图。此处的绑定对象可以使用您可以从任何地方获取的默认值创建。您的绑定对象可能会有一些键,例如 ID。默认的可以有一个零/默认键。
处理 POST 的方法将绑定对象作为参数。它可能会验证值然后插入数据库。数据库很可能会生成密钥/ID。
这是一个例子;
@Controller
public class PersonController {
@RequestMapping(value="/person.do", method=RequestMethod.GET)
public ModelAndView setup() {
ModelAndView response = new ModelAndView("person");
//Create default bind object, can get values
//from database if you like. Here they're just
//hard coded.
Person person = new Person();
person.setName("Joe Bloggs");
response.addObject("person", person);
return response;
}
@RequestMapping(value="/person.do", method=RequestMethod.POST)
public ModelAndView post(@ModelAttribute("person") Person person,
BindingResult result) {
Validator.validate(person, result);
if (result.hasErrors()) {
ModelAndView response = new ModelAndView("person");
response.addObject("person", person);
return response;
} else {
personDao.store(person);
}
return new ModelAndView("redirect:nextPage.do");
}
}
表单将填充您在支持对象中提供的任何值。我不明白你问题的第二部分。