在我的jsp中我使用spring form标签来绑定和更新数据。
我的方案是在用户进入页面时显示默认值。这些默认值应来自数据库,具体取决于某些条件。 但是当用户编辑数据并提交时,我希望将它们保存在数据库中而不更新默认值。
非常感谢任何建议!
答案 0 :(得分:1)
表单页面的标准方法是让控制器有两个方法,一个用于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");
}
}
答案 1 :(得分:0)
表单将填充您在后备对象中提供的任何值。我不明白你问题的第二部分。