2009-06-26 38 views
2

我有一个从主布局加载的菜单。在菜单中,如果用户点击该菜单,我必须突出显示特定的菜单。我根据控制器名称检测它。如何在Grails中创建控制器的“克隆”?

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

我试图为在UrlMappings 如创建别名:“/客户/编辑/”(控制器:“用户”,行动:“编辑”)

但主要布局,似乎没't认为是“客户”,但作为“用户”

有没有任何不错的方法来解决这个问题,而不需要重复控制器? 我可以继承控制器吗?如果是这样怎么办...

非常感谢。

回答

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