Grails:动态调用另一个动作

iba*_*alf 2 grails grails-controller

是否可以使用作为参数传递的controller-action名称调用另一个controller-action.像这样的东西:

视图:

<g:createLink controller="book" action="list"
params="[id: '1', onCompleteController='nextCon', onCompleteAction='nextAct']"/>
Run Code Online (Sandbox Code Playgroud)

控制器(书):

def list = {
   ... //Do something like save book

   **execute onCompleteController/onCompleteAction**

   return render(text: [success:true] as JSON))

}
Run Code Online (Sandbox Code Playgroud)

Bal*_*pal 5

你可以通过使用转发或重定向(这适用于你的情况)来做到这一点.

就像是

redirect(controller:onCompleteController, action: onCompleteAction, model:[])

forward(controller:onCompleteController, action: onCompleteAction, params:[])
Run Code Online (Sandbox Code Playgroud)

  • 不同之处在于`redirect`向用户代理返回3xx响应,用户代理必须向新动作VS发出另一个请求.`forward`,用于重定向服务器端,不会更改用户代理的URL. (2认同)