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 –