Spring MVC 3.0:如何绑定到持久对象


问题内容

我正在使用Spring MVC,但我希望它从数据库中绑定一个持久对象,但是我无法弄清楚如何在绑定之前设置代码来调用数据库。例如,我正在尝试将“
BenefitType”对象更新到数据库,但是,我希望它从数据库中获取该对象,而不是创建一个新的对象,因此我不必更新所有字段。

    @RequestMapping("/save")
public String save(@ModelAttribute("item") BenefitType benefitType, BindingResult result)
{
    ...check for errors
    ...save, etc.
}

问题答案:

因此,我最终通过在类中使用具有相同名称的@ModelAttribute注释方法来解决此问题。Spring在执行请求映射之前首先构建模型:

@ModelAttribute("item")
BenefitType getBenefitType(@RequestParam("id") String id) {
    // return benefit type
}