从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?名称=约翰
答案 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
。