0

在我的 jsp 中,我使用 spring 表单标签来绑定和更新数据。

我的方案是在用户进入页面时显示默认值。这些默认值应根据某些条件来自数据库。但是当用户编辑数据并提交时,我想将它们保存在数据库中而不更新默认值。

非常感谢任何建议!

4

2 回答 2

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");
  }

}
于 2012-11-09T16:30:11.567 回答
0

表单将填充您在支持对象中提供的任何值。我不明白你问题的第二部分。

于 2012-11-09T16:27:19.447 回答