gpt4 book ai didi

regex - Grails过滤器正则表达式

转载 作者:行者123 更新时间:2023-12-02 14:42:37 24 4
gpt4 key购买 nike

我是grails的新手,到目前为止,我只能使用简单的过滤器。我想以有效的方式使用过滤器。

(我正在使用grails 2.4.3和jdk_1.6)

我想创建一个过滤器,以允许访问AppName/AppName/user/login,但我做对了!我想使用正则表达式,但是我做错了!

我尝试了这个

       loggedInOnly(uri:'/**',uriExclude :"*.css|*.js|*image*|/|/user/login"){
before = {
println "### ###### #### #"
}
}

而且我还试图逆转regex参数,但是我没有运气!我搜索了所有的google,但找不到一个线程来告诉我过滤器正则表达式的工作方式!

我知道我可以创建 xxxx(controller:'*', action:'*')过滤器,然后使用 controllerNameactionName参数进行检查!但是必须有更好的方法!

我的问题简而言之:正则表达式如何在过滤器中工作?

最佳答案

首先,仔细看看documentation。请注意,uriuriExclude是 Ant 路径,而不是正则表达式。请记住,如果您查看ant paths函数的功能,您将看到它们不具有逻辑or的功能。

因此,考虑到所有这些,可以回到使用regex启用,而改为使用find属性。

loggedInOnly(regex: true, find: '(.​*.css|.*.js|.*image.*|\\/|\\/user\\/login)​', invert: true){
before = {
...
}
}

注意,我曾经使用invert将此过滤器应用于与 find内部的任何模式都不匹配的任何内容。另外,我在脑海中写下了这个代码,因此您可能必须检查应用程序中的正则表达式(我确实使用groovy Web控制台对其进行了检查,以确保我没有真正弄乱语法)。

希望这可以帮助。

关于regex - Grails过滤器正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com