grails在session下保存了许多页面

grails在session下保存了许多页面,session,grails,grails-2.0,grails-controller,Session,Grails,Grails 2.0,Grails Controller,我不熟悉grails。我最近在控制器中使用了会话。但是只有一页。现在我想将会话用于许多页面。但是我不知道怎么做。下面是我的代码,它可以工作一页。有人能帮我吗 def index() { def user = springSecurityService.currentUser if (user){ redirect(controller: 'admistratorAction', action: 'createUser') }else{ re

我不熟悉grails。我最近在控制器中使用了会话。但是只有一页。现在我想将会话用于许多页面。但是我不知道怎么做。下面是我的代码,它可以工作一页。有人能帮我吗

def index() {
    def user = springSecurityService.currentUser
    if (user){
        redirect(controller: 'admistratorAction', action: 'createUser')
    }else{
        redirect(controller: 'login', action: 'index')
    }

}

您可能是Grails的新手,我希望您不是新手。:)

会话信息的范围仅限于当前web应用程序 (ServletContext),因此存储在一个上下文中的信息不会 在另一个地方直接可见

只要您处于相同的
ServletContext
中,就应该能够直接访问会话变量。还要看看grails中的


@Alidad-从OP.向后滚动到最后一个问题。

在这种情况下,您可以利用grails在执行每个操作之前进行检查。正如dmahapatro提到的,您可以在应用程序中使用会话来存储用户对象,并且使用此过滤器,您可以在执行任何操作之前进行检查

像这样的事情可以帮助你实现它

class SecurityFilters {
    def filters = {
        loginCheck(controller: '*', action: '*') {
            before = {
                if (!session.user)) {
                    redirect(action: 'login')
                    return false
                }
            }
        }
    }
}

你能澄清一下在一页中使用会话是什么意思吗?你能发布你正在使用会话的部分吗?@Alidad我的意思是,如果用户登录,那么他就可以访问createUser页面,否则就不能了。根据以上代码,它工作正常。现在,我想为多个视图执行此操作,而不必每次都写入它。我希望你能理解。