如何查看用户在Grails中请求的页面?

时间:2013-08-16 12:57:24

标签: spring grails grails-plugin grails-2.0

我使用Grails Application Info Plugin将活动会话视为:

ScopesInfoService scopesInfoService

List<Map<String, Object>> activeSessionsMap = scopesInfoService.getSessionsInfo()
activeSessionsMap.each { sessionMap ->
            def tmpSession = sessionMap.session
}

如何查看已请求并正在请求会话的用户的哪个页面?

2 个答案:

答案 0 :(得分:4)

创建一个过滤器,并为名为currentLocation或其他变量的变量中的每个请求存储当前controlleractionrequest.forwardURI。当你访问会话时,只需阅读。你可以创造它并存储任何数据。但不确定这是一个正确的方法。

storeLocation(controller: '*', action: '*') {
            before = {
                session.currentLocation = "$controllerName/$actionName"
            }
        }

答案 1 :(得分:1)

这个插件不会给你这个。你需要自己开发一些东西。 您可以创建一个grails Filter保存到您的数据库(为此创建一个新表),有关会话,用户和请求的URI(您的页面)的信息。

示例过滤器:

class UserInfoFilters {
    def filters = {
            all(controller:'*', action:'*') {
                before = {
                    SessionUserInfoDomainClass s = new SessionUserInfoDomainClass()
                    // populate your domain class above with the info you need. Examples:
                    s.user = session.user
                    s.controller = controllerName
                    s.save()
                }
            }
    }
}

然后,您可以轻松地使用此SessionUserInfoDomainClass的一些UI(即使使用scaffolg)来阅读您想要的信息。