我有一个从主布局加载的菜单。在菜单中,如果用户点击该菜单,我必须突出显示特定菜单。我根据控制器名称检测到它。
我有两个名称不同的菜单,即用户编辑和客户端编辑。 两者实际上共享相同的控制器(即:UserController)和相同的域。
我尝试在UrlMappings中为其创建别名 例如:“/ client / edit /”(控制器:“用户”,动作:“编辑”)
但在主要布局上,它似乎没有被识别为“客户”而是被视为“用户”
有没有很好的方法来解决这个问题,而无需复制控制器? 我可以继承控制器吗?如果是这样的话......
非常感谢你。答案 0 :(得分:0)
使用过滤器将控制器名称添加到模型中并对其进行修改以适应:
e.g。把它放在/grails-app/conf/MenuAddingFilter.groovy
中class MenuAddingFilter {
static filter = {
all(controller:'*', action:'*') {
after = { model ->
model.menuName = controllerName.replace("Controller","")
}
}
}
}
然后在.gsp页面中,您将有menuName属性可供使用。 有关详细信息,请参阅http://www.grails.org/Filters。