1

こんにちは、グローバル インターセプターを作成し、そこにロケールを設定することは可能でしょうか。

/fr/* を /*?siteLang=fr に書き換える urlrewrite ルールがあります。

パラメータに基づいてロケールを設定する方法の例を見ましたが、それらはすべて同じであり、URL マッピングを使用する必要があります。ロケールインターセプターがどのコントローラー用であっても、各リクエストで呼び出されるようにグローバルに行うことは可能ですか?

<bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
    <property name="paramName" value="siteLang"/>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="interceptors">
        <list>
            <ref bean="localeChangeInterceptor"/>
        </list>
    </property>
    <property name="mappings">
        <value>
        /*=dispatchController
        </value>
    </property>
</bean>

私のxmlにはdispatchControllerのようなものはないので、それを使用することはできませんが、アイデアはすべてを傍受することです(何らかの方法で)。

私は基本的に、URI の先頭にロケールを含む URL を持ち、その後に /fr/user/details /de/products/hifi などのようなアプリケーション ビットが続くようにしたいと考えています。

URLを書き換えるという同じ規則を使用し、コントローラー固有の理由でsiteLangを使用しない異なるコントローラー。

ありがとう

4

1 に答える 1

3
<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
</mvc:interceptors>
于 2010-02-23T12:20:33.543 に答える