关于Grails渲染';怀疑

关于Grails渲染';怀疑,grails,grails-plugin,Grails,Grails Plugin,我写了一个简单的过滤器渲染示例,结果非常令人失望,不明白为什么会出现这种情况 谁能替我回答 1.环境: Grails版本:2.3.7,JDK:1.8 2.程序文件: 我的妻子: class MyFilterFilters { def filters = { all(controller:'*', action:'*') { before = { if (!controllerName) return true

我写了一个简单的过滤器渲染示例,结果非常令人失望,不明白为什么会出现这种情况

谁能替我回答

1.环境: Grails版本:2.3.7,JDK:1.8 2.程序文件: 我的妻子:

class MyFilterFilters {

def filters = {

    all(controller:'*', action:'*') {

        before = {

            if (!controllerName) return true



            if(!session.user && controllerName !='myRender')

            {

                println "------------------------"

                render view:"/login"

                return false

            }

        }
        after = { Map model ->
        }

        afterView = { Exception e ->
        }
    }
}
}

我的控制器:

class MyRenderController {
def index() {
    render text:"any message!!!"
    return
}
}

我的登录页面(login.gsp):

  • 测试结果: url:
    http://localhost:8080/renderTest/

  • 使用您的代码,您的登录页面也将被过滤,因此它将进入无限循环

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

    使用您的代码,您的登录页面也将被过滤,因此它将进入无限循环

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

    如果站点托管在您的计算机(locahost)上,我们将无法看到它。你能解释一下发生了什么以及你期望看到什么吗?你的问题还不清楚,如果网站是在你的机器上托管的(locahost),我们将无法看到它。您能否解释正在发生的事情以及您希望看到的情况?如果(!controllerName)返回true如果(!controllerName)返回true,您的问题就不清楚了