【问题标题】:How to create "clone" of controller in Grails?如何在 Grails 中创建控制器的“克隆”?
【发布时间】:2010-11-06 01:26:10
【问题描述】:

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

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

我尝试在 UrlMappings 中为其创建别名 如:"/client/edit/"(controller:"user",action:"edit")

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

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

非常感谢。

【问题讨论】:

    标签: java grails groovy gsp


    【解决方案1】:

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

    例如把它放在 /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 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多