grails重定向错误

grails重定向错误,grails,Grails,控制器中grails中的重定向问题 在控制器中: def function1 = { ... do stuff ... ... go to service ... redirect(action: "searchName", name: test) //redirect(action: "searchName", params: [ name: test ]) } 在searchName中,没有参数。这是一张空

控制器中grails中的重定向问题

在控制器中:

    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);