Spring MVC:如何使用表单将模型对象传递给控制器​​方法

时间:2013-01-25 06:37:20

标签: java spring-mvc

我有一个控制器类,我将一个对象添加到模型中,在视图中我可以访问它,现在我想将此对象发送回一个新的控制器方法,是否可以不使用表单来完成它?示例代码是:

我在这里为模型添加'细节'。

@RequestMapping(...)
public ModelAndView method1() {
       .....
        mv.addObject("details", details);
         mv.setViewName(REVIEW_PAGE);
         return mv;
}

我在评论页面上有一个“确定”按钮,其中详细信息已经过审核。现在我想将此“详细信息”对象发送回新的提交方法。 我想在同一控制器类的第二种方法中访问详细信息对象。

我尝试将其添加为模型属性(如下面的代码所示),但我在详细信息对象中获取空值。

@RequestMapping(....)
public ModelAndView method2(@ModelAttribute("details") Details details){
//access details object here        

}

流程如下:(在模型中添加详细信息(method1) - >发送到视图进行审核 - >确认(单击确定) - >发送回提交(方法2))

我是Spring MVC的新手,所以如果我的问题出错,我很抱歉。

1 个答案:

答案 0 :(得分:2)

您可以使用控制器上的@SessionAttributes注释告诉Spring在服务器端保留模型的副本

@Controller
@SessionAttributes("details")
public class TheController {
}

这有一些警告。默认的内置实现非常基本,例如,不会考虑跨标签使用相同会话的多标签浏览器。它也没有自动清理。完成数据后,您必须手动调用session.setComplete()