Java SpringMVC:如何在不使用表单的情况下将模型对象传递给控制器方法
我有一个控制器类,我在其中向模型添加一个对象,在视图中我可以访问它,现在我想将这个对象发送回一个新的控制器方法,是否可以不使用表单来完成它?示例代码是: 在这里,我将“细节”添加到模型中Java SpringMVC:如何在不使用表单的情况下将模型对象传递给控制器方法,java,spring-mvc,Java,Spring Mvc,我有一个控制器类,我在其中向模型添加一个对象,在视图中我可以访问它,现在我想将这个对象发送回一个新的控制器方法,是否可以不使用表单来完成它?示例代码是: 在这里,我将“细节”添加到模型中 @RequestMapping(...) public ModelAndView method1() { ..... mv.addObject("details", details); mv.setViewName(REVIEW_PAGE); r
@RequestMapping(...)
public ModelAndView method1() {
.....
mv.addObject("details", details);
mv.setViewName(REVIEW_PAGE);
return mv;
}
我在查看页面上有一个“确定”按钮,其中详细信息将被查看。现在我想把这个“details”对象发送回一个新的提交方法。
我想访问同一控制器类的第二个方法中的details对象
我尝试将其添加为模型属性(如您在下面的代码中所看到的),但在details对象中得到了空值
@RequestMapping(....)
public ModelAndView method2(@ModelAttribute("details") Details details){
//access details object here
}
流程如下:(在模型中添加详细信息(方法1)->发送到视图以供查看-->确认(单击确定)->发送回以供提交(方法2))
我是Spring MVC新手,因此如果我的问题中有错误,我很抱歉。您可以告诉Spring使用控制器上的
@SessionAttributes
注释在服务器端保留模型副本
@Controller
@SessionAttributes("details")
public class TheController {
}
这有一些警告。默认的内置实现非常基本,例如,不考虑多选项卡浏览器跨选项卡使用同一会话。它也没有自动清理功能。处理完数据后,您必须手动调用session.setComplete()。为什么需要重新提交服务器端已有的模型?实际上我没有使用session,然后您需要做一些事情从客户端发回信息,表格当然是最简单的。它可以是SessionAttributes,也可以是form。在表单中,您不一定需要输入。只需在页面上显示要查看的信息即可。“确定”按钮仍然是“提交”类型。在modelAttribute和action中,url是要发送数据的位置。