2013-05-08 62 views
0

我有一个自定义URL名称要求。用户昵称的Grails自定义URL映射

每个用户都将有一个自定义网页,并且必须在域

例如根:HTTP:www.bemdireto.com.br/eduardo

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

该应用程序已经存在,所以我不能更改控制器的网址。

我们用下面的代码

"/$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和4之前被调用3次。

回答

0

链接生成器绑定到URLMappings,当不使用默认CachingLinkGenerator时,这是正确的。

UrlmappingUtil中的一些代码也可能会影响它。

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

+0

尽管我从页面中删除了所有链接,但仍然执行了7次该功能。还有什么可以触发URLMappings?或者链接生成器调用的其他地方? – 2013-05-09 11:05:15

+0

检查您的UrlMappingUtil代码,然后如果删除链接没有影响。链接生成器被称为超链接生成。 – rimero 2013-05-09 12:25:11

+0

没有运气,但。这个过程正在减慢页面 – 2013-05-10 13:29:18