Grails:我希望只为两个重要的重定向存在一些数据。如果我使用会话,只要用户的浏览器打开或有时甚至更长时间,它就会保留。如果我使用flash,它将只会在下一个gsp文件呈现之前。我的控制器A用一些数据重定向到另一个控制器B.存储数据直到B的视图b.gsp被渲染。现在在b.gsp中,用户将填写某个表单并提交它以向B中的另一个操作发送另一个请求。我希望A中的数据保持到此时不再存在。 (两个请求对吗?一个重定向和另一个提交)。
<script>
$(function() {
$('select, ul').dropdown();
});
</script>
好的,你可能会说,为什么不把它放在会话中并在请求回到A后清理那个会话条目。但是如果用户去了b.gsp并且出于某种原因导航到其他页面而不提交数据,在这种情况下,不清理会话数据。它停留在系统中,在我的应用程序中遗留了一些东西。
或者你可能会说,为什么不使用flash,在b.gsp中放置一个隐藏字段,其值从A传递到flash,并在下一次请求B&#39的第二个动作时提交。但不是;假设由于某种原因我无法访问b.gsp(B和b.gsp是完全独立系统的一部分)。我不能搞砸他们。
我试着阅读关于grails中的网络流量和子流程,但我看不出它有什么用。我认为Webflow在同一个控制器中工作(但我不确定)。
任何帮助?
由于
答案 0 :(得分:0)
考虑使用grails chain。根据文件:
[Chain]使用闪存存储在HTTP重定向从一个操作到另一个操作之后隐式保留模型。
可以用作:
def one() {
chain action: 'two', model: [name: 'Tony', town: 'Birmingham']
}
def two() {
[name: 'Anthony', country: 'England']
}