2

我有一个从主布局加载的菜单。在菜单中,如果用户单击该菜单,我必须突出显示特定菜单。我根据控制器名称检测到它。

我有 2 个具有不同名称的菜单,即用户编辑和客户端编辑。两者实际上共享相同的控制器(即:UserController)和相同的域。

我试图在 UrlMappings 中为其创建别名,例如:“/client/edit/”(控制器:“用户”,动作:“编辑”)

但在主布局上,它似乎没有被识别为“客户端”而是“用户”

有什么好方法可以在不复制控制器的情况下解决这个问题?我可以继承控制器吗?如果是这样怎么做...

非常感谢您。

4

1 回答 1

0

使用过滤器将控制器名称添加到模型中并对其进行修改以适应:

例如把它放在 /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

于 2009-07-08T13:54:42.463 回答