我是Grails的新手,我遇到了以下问题。
我通过ajax调用在controller1中调用action1。 现在虽然我想重定向到controller2中的action2。
如下所示...但它似乎不起作用请帮助我!!
class controller1 {
def action1 = {
redirect(controller:'controller',action:'action2')
}
}
class controller2{
action2{
}
}
答案 0 :(得分:4)
您需要为控制器属性
指定正确的控制器名称redirect(controller:'controller2',action:'action2')
答案 1 :(得分:1)
你需要通过你的ajax回调函数进行重定向,例如: 如果你使用JQuery例如
$.ajax({
type: "POST",
url: "${createLink(controller:'controller1',action:'action1')}",
data: "dataToSend="somedata,
success: function(data){//data is the message rendered from action1
window.location = ${createLink(controller:'controller2',action:'action2')}
},
error: function(){
alert("Error from controller 1 action 1");
}
});
在你的controller1 action1中,你需要渲染回ajax事件:
class controller1 {
def action1 = {
........
some code/logic
........
def message = "some message, success! or error!"
render(text:message, type:,contentType:'text/xml')
}
}
答案 2 :(得分:0)
您可以使用render()
代替redirect()
。