我正在尝试在我的应用程序中为管理员创建单独的控制器。到目前为止,我有这样的事情:
"/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/$controller/$action?/$id?"(controller:"admin$controller")
但这两种解决方案都没有奏效。您是否知道如何使这种映射更具动态性?
答案 0 :(得分:1)
如果使用闭包,则可以自定义控制器值。
/$mode/$contr"{
action = "someAction"
controller = {
if (params.mode == "api") {
return params.contr+"API"
}
else {
return params.contr
}
}
constraints {
mode inList:["menu", "api"]
}
}
我希望这有帮助!
答案 1 :(得分:0)
也许你不应该使用“控制器”这个词。我没试过,但这可行:
"/admin/$contr/$action?/$id?"(controller:"admin$contr") // if first letter of contr is upper case