grails重定向错误
控制器中grails中的重定向问题 在控制器中:grails重定向错误,grails,Grails,控制器中grails中的重定向问题 在控制器中: def function1 = { ... do stuff ... ... go to service ... redirect(action: "searchName", name: test) //redirect(action: "searchName", params: [ name: test ]) } 在searchName中,没有参数。这是一张空
def function1 = {
... do stuff ...
... go to service ...
redirect(action: "searchName", name: test)
//redirect(action: "searchName", params: [ name: test ])
}
在searchName中,没有参数。这是一张空名单。
尝试调用重定向的第二种方法,我得到了一个确实存在的方法的grails exceions(MissingMethodException)
我看不出有什么特别的,这是在发生
有什么帮助吗
编辑
MissingMethodException不在searchName函数上,而是在服务中的一个方法上。这种方法是存在的
如果使用第一个重定向方法,则服务方法工作正常,但重定向到searchName包含空参数。
如果我切换重定向方法,那么服务方法将不再工作
(例外情况除外,因此它永远不会到达重定向)。使用完全重新编译/清理的代码
另外,searchName是一个闭包。再说一次,没什么特别的。
抓取name参数并使用它
class MyWierdController {
def function1 = {
... do stuff ...
... go to service ...
String test="blah"
redirect(action: "searchName", name: test)
}
def searchName = {
if (params.name) {
log.info "its there"
} else {
log.info "its not there"
}
}
}
redirect()
是真正的HTTP重定向。您将遇到问题,因为您的所有参数都将被反序列化,并且可能会丢失类型信息(例如日期,它将在重定向后显示为字符串)
第一个版本将忽略name参数,因为所有参数必须在params
中
试一试
由于您没有引用这些参数,groovy希望它们是一个变量,并尝试解析它们。由于这两个参数都未定义,它将变成params:[null:null]
但是,我猜您正在搜索
render(视图:“searchName”,参数:[“name”:“test”])
,它不会执行HTTP重定向。grails 1.3.7-抱歉。这应该在前面提到。调用function1
操作后,您有什么HTTP响应?这是因为我没有引用参数名称。我要为自己的愚蠢而开枪
redirect(action: "searchName", params: ["name": "test"]);
// or
redirect(action: "searchName", params: params);