【问题标题】:how to use filter in grails如何在grails中使用过滤器
【发布时间】:2013-09-25 13:14:24
【问题描述】:

我有一个过滤器,我想过滤除一个让我进入登录页面的操作之外的所有操作。
如果我用某种条件过滤所有页面,那么即使是登录页面也会被过滤,因此它卡在无限循环中,因为条件不满足(用户未登录)。 session.getAttribute("CurrentEmployeeIds") 判断用户是否登录


我的过滤器在这里:

class LoginFilters {

    def filters = {
        all(controller:'dashboard', action:'*') {
            before = {
                if (session.getAttribute("CurrentEmployeeIds")==null) {
                    redirect(controller:"site",action:"index")
                    return false
                }
            }
            after = { Map model ->

            }
            afterView = { Exception e ->

            }
        }
    }
}

我想以不过滤 controller:"site",action:"index" 这个网址并过滤其他所有内容的方式进行过滤。
提前致谢。

【问题讨论】:

  • 您可以通过actionNamecontrollerName 获取动作和控制器名称,只需检查一下,简单的if 语句。您可以针对该特定操作返回 true
  • 这与 Struts 2 有什么关系?

标签: grails filter


【解决方案1】:

您可以反转过滤规则,例如:

def filters = {
    allExceptIndex(controller:"site",action:"index",invert:true) {
        before = {
        }
        after = { Map model ->
        }
        afterView = { Exception e ->
        }
    }
}

请参阅文档http://grails.org/doc/latest/guide/theWebLayer.html#filters

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多