Grails:我想要一些數據只存在於兩個相應的重定向。如果我使用會話,只要用戶的瀏覽器打開或有時會更長時間,它就會停留。如果我使用閃光燈,它將一直持續到下一個gsp文件被渲染。我的控制器A用一些數據重定向到另一個控制器B.數據被存儲直到B的視圖b.gsp被渲染。現在在b.gsp中,用戶將填寫某種形式並提交它,以便將另一個請求發送給B中的另一個動作。我希望來自A的數據保持到此時爲止。 (兩個請求正確嗎?一個重定向和另一個提交)。如何讓會話數據只保留兩個請求
class AController {
def callBWithSomeData() {
redirect (controller: "B", action: "showB", params: [data: "id"])
}
def backFromB() {
def myDataBack = params.persistingdDataForARoundTrip
}
}
class BController {
def showB() {
def data = params.data
render "b"
}
def fromBtoA() {
redirect (controller: "A", action: "backFromB", params: [persistingdDataForARoundTrip: "id"])
}
}
好吧,你可能會說,爲什麼不把它放在會議和一次請求追溯到A.不過,如果什麼用戶去b.gsp清除該會話條目出於某種原因,瀏覽到一些其他頁面不提交數據,在這種情況下會話數據未被清除。它留在系統中,並在我的應用程序中破壞了一些東西。
或者您可能會說,爲什麼不使用flash,在b.gsp中放置一個隱藏字段,並將值從A傳遞給flash,並在下一個請求中將其提交給B的第二個動作。但不是;假設由於某種原因,我無法訪問b.gsp(B和b.gsp是完全獨立系統的一部分)。我不能惹他們。
我嘗試閱讀關於grails中的web流量和子流,但我看不出有什麼用處。我猜想Webflows在同一個控制器內工作(但我不確定)。
任何幫助?
感謝
旅行,所以我不能發佈一個完整的答案,但我覺得一個時間數據的插件會很好地工作適合你:https://開頭的Grails。 org/plugin/one-time-data –