【问题标题】:How to retain the values of the Spring MVC form backing object?如何保留 Spring MVC 表单支持对象的值?
【发布时间】:2011-12-08 04:05:37
【问题描述】:

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

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

【问题讨论】:

    标签: java spring spring-mvc


    【解决方案1】:

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

    【讨论】:

    • 还可以查看@SessionAttributes,其中值在该控制器实例的会话中保留。
    【解决方案2】:

    @ModelAttribute 在方法级别通常用于将引用数据类型的数据添加到模型中。而这些注解是在@RequestMapping之前执行的;因此,在控制到达您的公共 void userData() 之前,您的属性“userData”会用新对象刷新。方法。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      相关资源
      最近更新 更多