0

カスタム 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 が UrlMappingsFilter の前に 3 回呼び出され、その後に 4 回呼び出されることに気付きました。

4

1 に答える 1

0

リンク ジェネレーターは URLMappings に関連付けられています。これは、デフォルトの CachingLinkGenerator を使用していない場合に当てはまります。

UrlappingUtil の一部のコードも影響を与える可能性があります。

ページ内のリンク数を確認してください。観測結果が変わらない場合は、独自の urlmappingevaluator を実装することをお勧めします。

于 2013-05-09T00:02:46.387 に答える