spring mvc annotation - 对象缺少post的值

时间:2010-08-19 17:32:52

标签: spring spring-mvc annotations

我有一个包含5个属性的域对象。我在我的GET方法中预加载对象并只显示表单中的一个属性。提交表单时,该对象仅包含一个具有值的属性。如何在不为表单中的每个属性设置隐藏变量的情况下获取剩余属性及其值。

1 个答案:

答案 0 :(得分:3)

如果您不想在hidden字段中存储属性,则可以将对象存储在会话中。在Spring 3中,这可以使用@SessionAttribute注释以声明方式完成:

@Controller @RequestMapping("/editBar")
// Specifiy the name of the model attribute to be stored in the session
@SessionAttribute("bar")     
public class BarController {

    @RequestMapping(method = GET) 
    public String form(Map<String, Object> model) {
        model.put("bar", ...);
        ...
    }

    @RequestMapping(method = POST)
    public String submit(@ModelAttribute("bar") Bar bar, BindingResult errors, 
        SessionStatus status) {
        if (!errors.hasErrors()) {
            status.setComplete(); // Clear the session after successful submit
            ...
        } ...
    }
}