【问题标题】:How can I see which Pages a User requests in Grails?如何在 Grails 中查看用户请求的页面?
【发布时间】:2013-08-18 21:27:42
【问题描述】:

我使用 Grails Application Info Plugin 来获取活动会话:

ScopesInfoService scopesInfoService

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

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

【问题讨论】:

  • 不知道为什么你需要这个插件。 request.forwardURI
  • @Gregg 我想查看每个会话请求哪个 URI?我该怎么做?
  • 会话不请求 URI。请求做。 request.forwardURI 会告诉你正在请求什么 URI。
  • @Gregg 我知道,但是当我只有会话时,如何查看用户正在访问哪些页面?
  • 见@Alidad 的回答。这就是我要建议的。

标签: spring grails grails-plugin grails-2.0


【解决方案1】:

创建一个过滤器并将每个请求的当前controlleractionrequest.forwardURI 存储在一个名为 currentLocation 的变量中。当您访问会话时,只需阅读即可。您可以发挥创意并存储任何数据。但不确定这是一个正确的方法。

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

【讨论】:

  • 你的方法有什么问题?
  • 通常将数据放在会话中可能不是一个好主意,但为此目的它很好。
  • 为什么在会话中存储数据不好?它会减慢应用程序的速度吗?
  • 过滤器应该放在哪里?我不希望它出现在每个控制器中。
  • Grails 过滤器将位于配置文件夹中。如果你只是谷歌它将是第一个链接。 grails.org/doc/2.2.1/ref/Plug-ins/filters.html
【解决方案2】:

这个插件不会给你那个。你需要自己开发一些东西。 您可以创建一个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)来读取您想要的信息。

【讨论】:

  • 过滤器应该放在哪里?我不希望它出现在每个控制器中。
  • 我已将过滤器文档链接放在我的答案中。您将在文档中找到更多信息:grails.org/doc/latest/guide/theWebLayer.html#filters(放置过滤器的位置在 grails-app/conf/ 文件夹中)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-23
  • 1970-01-01
  • 2014-09-28
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多