1

次のような URL マッピングで言語プレフィックスを使用している場合

/$lang/$controller/$action?/$id?

生成している URL に lang パラメーターに加えてパラメーターが含まれている場合、offset などの追加のパラメーターに対して次の URL を取得します。

/book/list?offset=10&lang=en

しかし、これは私のマッピングを壊します。代わりに、URL を次のようにします。

/en/book/list?offset=10

どうすればそれを達成できますか?

4

1 に答える 1

0

次の Bean を作成します (lang パラメーターが「lang」であると仮定します)。

class LangAwareUrlMappingsHolderFactoryBean extends UrlMappingsHolderFactoryBean {

    @Override
    public UrlMappingsHolder getObject() throws Exception {
        def obj = super.object
        obj.DEFAULT_CONTROLLER_PARAMS = [UrlMapping.CONTROLLER, UrlMapping.ACTION,     "lang"] as Set
        obj
    }   
}

そしてresources.groovy を調整します:

"org.grails.internal.URL_MAPPINGS_HOLDER"(LangAwareUrlMappingsHolderFactoryBean) { bean ->
    bean.lazyInit = true
}

そして、あなたは得るでしょう

/en/book/list?offset=10

それ以外の

/book/list?offset=10&lang=en
于 2013-05-08T16:27:53.667 に答える