【问题标题】:How to define multiple distinct controllers with distinct actions in Grails filter?如何在 Grails 过滤器中定义多个具有不同操作的不同控制器?
【发布时间】:2015-04-30 06:02:43
【问题描述】:

我已经阅读了on defining multiple distinct controllers in a filterwith multiple actions 的帖子,但我们可以将两者结合起来吗?例如:

def filters = {
someFilterMethod(controller: 'controller1|controller2|...', action: 'controller1Action|controller2Action')         
  {
    ...
  }
}

有可能吗?或者,我总是可以将两个动作重命名为相同的名称。但只是想知道它是否可能。谢谢。

【问题讨论】:

  • 在一个带有几个控制器的小型测试应用程序中尝试这将非常简单。
  • 是的,我做到了。该操作应用于所有指定的控制器。我希望我可以为特定控制器指定一个独特的操作。例如,过滤器仅应用于 controller1/controller1Action,而不应用于 controller1/controller2Action。

标签: grails


【解决方案1】:

没有办法以声明方式表达类似的内容,但您可以轻松地将所需的任何命令性逻辑放入过滤器中,以更具体地了解过滤器对哪些控制器和操作的组合产生影响。

【讨论】:

    【解决方案2】:

    是的,你可以这样做......

    class MyFilters {
    
        def filters = {
            someFilter(controller:'one|two|three', action:'read|delete|save') {
                before = {
                    // ...
                }
            }
        }
    }    
    

    【讨论】:

    • 谢谢。但我一直在寻找的是我可以为特定控制器指定一个独特的操作。例如,过滤器仅应用于 controller1/controller1Action,而不应用于 controller1/controller2Action。使用您的解决方案,过滤器将应用于控制器一|二|三的读取|删除|保存操作。我希望过滤器将应用于读取控制器一,删除控制器二并仅保存控制器三。
    • 没有办法以声明方式表达类似的东西,但是将您需要的任何命令式逻辑放入过滤器中以更具体地了解过滤器具有哪些控制器和操作组合,这将是微不足道的对它的影响。
    • 谢谢!是的,这就是我所做的。如果您将其作为答案提交,我会接受。再次感谢,
    猜你喜欢
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多