Grails 连接URL映射中的字符串?
我正在尝试在我的应用程序中为管理员创建单独的控制器。到目前为止,我得到了类似的结果:Grails 连接URL映射中的字符串?,grails,groovy,Grails,Groovy,我正在尝试在我的应用程序中为管理员创建单独的控制器。到目前为止,我得到了类似的结果: "/admin/article/$action?/$id?"(controller:"adminArticle") "/admin/comment/$action?/$id?"(controller:"adminComment") 如此类推,适用于所有管理控制器。我想让它更简单,尝试: "/admin/$controller?/$action?/$id?"(controller:"admin" + contr
"/admin/article/$action?/$id?"(controller:"adminArticle")
"/admin/comment/$action?/$id?"(controller:"adminComment")
如此类推,适用于所有管理控制器。我想让它更简单,尝试:
"/admin/$controller?/$action?/$id?"(controller:"admin" + controller[0].toUpperCase() + controller[1..-1])
及
但这两种解决方案都不起作用。你知道如何使这个映射更加动态吗?也许你不应该使用“控制器”这个词。我没有试过,但这可以奏效:
"/admin/$contr/$action?/$id?"(controller:"admin$contr") // if first letter of contr is upper case
如果使用闭包,则可以自定义控制器值
/$mode/$contr"{
action = "someAction"
controller = {
if (params.mode == "api") {
return params.contr+"API"
}
else {
return params.contr
}
}
constraints {
mode inList:["menu", "api"]
}
}
我希望这有帮助
/$mode/$contr"{
action = "someAction"
controller = {
if (params.mode == "api") {
return params.contr+"API"
}
else {
return params.contr
}
}
constraints {
mode inList:["menu", "api"]
}
}