如何保留Spring MVC表单支持对象的值?

时间:2011-12-08 04:05:37

标签: java spring spring-mvc

我的控制器有一个返回表单支持对象的方法:

@ModelAttribute(“userData”)
public UserData formBackingObject() {
    return new UserData();
}

当表单提交未通过其验证检查时,它将被重新显示,但在重新呈现时,userData对象不包含用户提交的值 - 仅包含初始化时出现的值。

@RequestMapping(method = RequestMethod.POST)
public void userData(HttpServletRequest request, @ModelAttribute(“userData”) UserData userData, BindingResult bindResult, ModelMap model) {

    // do validation checks

    if (bindResult.hasErrors()) {
        // perform redirect back to same page
    }

    return "userData";
}

2 个答案:

答案 0 :(得分:0)

你需要做一个model.addAttribute(“key”,value)。这将有助于将值绑定到模型对象检查http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html以获取样本。

答案 1 :(得分:0)

方法级别的

@ModelAttribute 通常用于向模型添加参考数据类型的数据。这些注释在 @RequestMapping 之前执行;因此你的属性" userData"在控制到达public void userData()之前使用新对象刷新。方法

解决方案是在方法中将userData添加到模型中,该方法将用户数据表单jsp返回给浏览器。