Grails:在Webflow结束时将控制器传递给控制器

时间:2013-01-25 20:12:49

标签: grails groovy grails-2.0

是否可以在Webflow末尾的重定向中传递'params'?基本上这个变量或参数从控制器传递到控制器的目的是这个,我希望在视图页面上只有 的变量或$ {param.xyz}如果流程已经完成。

 class Example1Controller{
    def startFlow = {
        begin {
        ....
        }
        ....
        ....    
        finished {
            action {
                flash.message = 'success'
            }
            redirect(controller: 'example2', action: 'myaccount', params: [author: "Stephen King"])
        } 
     }
  }

其他控制器

 class Example2Controller{
     def myaccount() {
         def here = $params.author
         return [me:here]
     }
 }

GSP VIEW

 <html>
     <body>
         <g:if test="${params.me}">
             <p>This is what I want to display: **${me}**</p>
             <p>But it must come from the first controller, from the flow.</p>
         </g:if>
     </body>    
 </html>

基本上,从控制器传递到控制器的所有变量的目的都是这个。我希望只有在流程完成后才能在视图页面上提供变量或$ {param。}。

2 个答案:

答案 0 :(得分:1)

您可以使用hiddenField

<g:hiddenField name="myField" value="myValue" />

您可以将值从 Example1Controller 传递到 Example1Gsp (作为hideenField),您可以从该GSP中获取 Example2Controller 中的值。

答案 1 :(得分:1)

如果我没记错,我们之前就这样做了,但是我们使用了流量范围/流量变量。类似的东西:

def myFlow = {
    fin {
        redirect: (controller: "xxx", action: "yyy", params: [someValue: flow.someValue])
    }
}

然后,在接收端,类似:

def yyy = {
    [ aaa: params.someValue ]
}