参数' id'在Grails重定向中查询字符串

时间:2015-05-27 03:47:52

标签: grails url-redirection

从Grails控制器,我想重定向到这个(使用查询字符串):

  

/ myController的/ myaction?ID = 3

我写了这段代码:

def a = 3;
redirect (controller:"mycontroller",action:"myaction",params:[id:a])

此代码将生成:

  

/ myController的/ myaction / 3

我知道' id'是特殊参数。它将是url而不是查询字符串。我尝试了另一个参数

def name = "John";
redirect (controller:"mycontroller",action:"myaction",params:[name:name])

将产生:

  

/ myController的/ myaction?名称=约翰

1 个答案:

答案 0 :(得分:2)

您描述的行为是UrlMappings配置的结果。 如果您使用默认映射,id参数将放在描述的位置$id?

class UrlMappings {    
    static mappings = {
        "/$controller/$action?/$id?"{
            constraints {
                // apply constraints here
            }
        }
        "/"(view:"/index")
        "500"(view:'/error')
    }
}

一般来说这没问题。您也可以使用id参数,就像它被设置为查询字符串一样:

def myaction() {
    def idFromParams = params.id
}

或者您只需重写UrlMappings