Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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
Spring在控制器之间传递对象/字符串(GET和POST)_Spring_Jsp_Model View Controller_Controller_Parameter Passing - Fatal编程技术网

Spring在控制器之间传递对象/字符串(GET和POST)

Spring在控制器之间传递对象/字符串(GET和POST),spring,jsp,model-view-controller,controller,parameter-passing,Spring,Jsp,Model View Controller,Controller,Parameter Passing,我一直在努力在控制器之间传递一些值 我有一个这样的控制器: @RequestMapping(value = "/add", method = RequestMethod.GET) public String addGet(HttpServletRequest request, @ModelAttribute(value="branch") Branch branch, Model model, blahblahblah) //What I want to pass and re use: Str

我一直在努力在控制器之间传递一些值

我有一个这样的控制器:

@RequestMapping(value = "/add", method = RequestMethod.GET)
public String addGet(HttpServletRequest request, @ModelAttribute(value="branch") Branch branch, Model model, blahblahblah)
//What I want to pass and re use:
String loadRespond;
try{
    loadRespond= *SOME LOAD STRING METHOD*;
    branch= branchManager.convertString(loadRespond); //METHOD TO SPLIT STRING & INDUCT TO OBJECT
}catch{exception){
    //blabla
}

在我成功地将所有属性导入到对象分支之后,我通过一个绑定表单来显示它们。我想做的是,当我要更新数据/更改某些属性时,我想将旧分支与新更改的分支进行比较。这意味着我必须将旧的branch对象或loadRespond字符串传递给POST方法,以便可以使用。有人知道怎么做吗?也许要将其分配给jsp中的隐藏类型字段?然后在具有方法类型post的请求映射/添加的控制器上使用它?谢谢..我是个新手..

你为什么不试试
会话
范围

将您的
旧分支
存储到会话中。当您获得新对象时,将其与旧对象进行比较(通过从会话中检索)

您可以将这两者中的任何一种保存到会话中

 request.getSession().setAttribute("sessionvar", "session value");
 @SessionAttributes("sessionvar")
一个很好的开始


旁注:你的问题标题不能很好地解释你的问题,解决方案可能会有所不同,正如San Krish在回答中指出的那样,最常见的方法是使用@SessionAttributes并使用它们传递对象/数据

如果您不担心用户在页面中前后移动,或者不希望对对象进行基本控制,那么这将非常有用

现在,如果您想要一个控制器1传递给控制器2的链,而控制器2可能传递给控制器3,那么最好的选择是实现web流

总结: 简短、甜蜜、快速:SessionalAttributes是一种方式,这里举个例子


对于链传递,更好的控制和验证使用Spring Web流。

请为我澄清,一旦创建了分支,您想调用另一个控制器并传递它分支对象吗?嗨,是这样的……传递之后,我想将其与单击提交按钮后创建的新分支对象进行比较。