spring form标签具有默认值

时间:2012-11-09 16:18:13

标签: java spring hibernate

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

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

非常感谢任何建议!

2 个答案:

答案 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)

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