我使用Grails Application Info Plugin将活动会话视为:
ScopesInfoService scopesInfoService
List<Map<String, Object>> activeSessionsMap = scopesInfoService.getSessionsInfo()
activeSessionsMap.each { sessionMap ->
def tmpSession = sessionMap.session
}
如何查看已请求并正在请求会话的用户的哪个页面?
答案 0 :(得分:4)
创建一个过滤器,并为名为currentLocation或其他变量的变量中的每个请求存储当前controller
和action
或request.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)来阅读您想要的信息。