Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringMVC:如何在不使用表单的情况下将模型对象传递给控制器方法_Java_Spring Mvc - Fatal编程技术网

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是要发送数据的位置。