【问题标题】:Grails custom URL mapping for user nicknames用户昵称的 Grails 自定义 URL 映射
【发布时间】:2013-05-08 23:07:08
【问题描述】:

我有一个自定义 URL 名称要求。

每个用户都有一个自定义页面,它必须位于域的根目录

例如:http:www.bemdireto.com.br/eduardo

这将与默认控制器的映射冲突。

应用程序已经存在,所以我无法更改控制器 url。

我们想出了以下代码

 "/$controller/$action?/$id?"{
     controller = {
    def log = Logger.getLogger('br.com.fisgo.UrlMappings')

    log.trace "Verifying if a broker hot site or controller"

    def uri = delegate.getCurrentRequest().getRequestURI()
    log.info "Acessando uri: ${uri}"

    UrlMappingUtil.handleBrokerHotSiteController(uri, {owner ->
       params.owner = owner
       })
    }

        action = {
            def uri = delegate.getCurrentRequest().getRequestURI()
            UrlMappingUtil.handleBrokerHotSiteAction(uri)
        }
    }

UrlMappingUtil.handleBrokerHotSiteController 方法将区分控制器和昵称。

问题是:每个请求都执行了 7 次方法。

我找不到原因。

我注意到 urlMapping 在 de UrlMappingsFilter 之前被调用了 3 次,之后被调用了 4 次。

【问题讨论】:

    标签: grails controller url-mapping


    【解决方案1】:

    链接生成器与 URLMappings 绑定,当不使用默认 CachingLinkGenerator 时是这样。

    您在 UrlmappingUtil 中的某些代码也可能会影响它。

    检查页面中的链接数量。如果观察结果仍然相同,您可能需要实现自己的 urlmappingevaluator。

    【讨论】:

    • 即使我从页面中删除了所有链接,它仍然执行该功能 7 次。还有什么可以触发 URLMappings?或者链接生成器在哪里被调用?
    • 检查您的 UrlMappingUtil 代码,然后如果删除链接没有影响。链接生成器被调用来生成超链接。
    • 还没有运气。此过程正在减慢页面速度
    • 尝试更改日志级别以在您的 Config.groovy 中进行调试,这可能有助于您跟踪方法调用和相关类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多