0

我一直在努力在控制器之間傳遞一些值。在控制器之間傳遞對象/字符串(GET&POST)的彈簧

我有一個控制器這樣的:

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

後,我成功地引導了所有屬性到物體分支,我讓他們都通過有約束力的形式。我想要做的是,當我要更新數據/更改某個屬性時,我想將舊分支與新更改的分支進行比較。這意味着我必須將舊分支對象或loadRespond字符串傳遞到POST方法,以便可以使用。有誰知道如何做到這一點?也許把它分配給jsp中的隱藏類型字段?然後在控制器上使用它來請求映射/添加方法類型post?謝謝..我是一個新手..

+0

對我來說很明確,一旦創建了分支,你想調用另一個控制器並傳遞它的分支對象? – Aeseir 2014-10-09 04:37:37

+1

嗨,yea事端'就像那..在我通過它之後,我想將它與點擊提交按鈕後創建的新分支對象進行比較。 – Nico 2014-10-09 06:23:18

回答

1

你爲什麼不嘗試與session範圍?

將您的old branch存儲到會話中。當你獲得新對象與舊的比較(從會話檢索)

您可以保存到會話中的任何兩者,

request.getSession().setAttribute("sessionvar", "session value"); 
@SessionAttributes("sessionvar") 

一個不錯的Example這裏開始吧。

側面說明:您的問題標題犯規相當expalain您的問題和解決方案可能會有所不同

+2

謝謝布魯! hehehe :) – Nico 2014-10-10 01:59:48

+1

歡迎您:)很高興它幫助 – 2014-10-10 05:38:32

1

正如聖Krish在他的回答中最常見的方法是使用@SessionAttributes和使用它們傳遞對象/數據指出。

如果您不擔心用戶在頁面中前後移動,或者想要對對象進行基本控制,這非常有用。

現在,如果你想有一個控制器1傳遞給控制器​​2的鏈,控制器2可以傳遞給控制器​​3,那麼最好的辦法就是實現網絡流。

摘要: 對於短暫的甜蜜快捷:SessionAttributes是要走的路,例如這裏http://www.intertech.com/Blog/understanding-spring-mvc-model-and-session-attributes/

對於鏈傳球,更好的控制和驗證使用Spring Web流。

相關問題