春天3 mvc拦截所有请求

时间:2010-01-19 17:51:06

标签: spring-mvc internationalization locale interceptor

嗨,我想知道是否有可能创建全局拦截器并在那里设置语言环境。

我有urlrewrite规则要重写/ fr / *到/ *?siteLang = fr

我看到了如何基于参数设置语言环境的示例,但它们都是相同的,并且要求我使用url映射。是否有可能在全局范围内执行此操作,以便在每个请求上调用locale拦截器,无论它是什么控制器?

<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 /用户/细节 /德/产品/高保真 等等

不同的控制器使用相同的重写url约定,并且从不因控制器特定原因而使用siteLang。

由于

1 个答案:

答案 0 :(得分:3)

<mvc:interceptors>
    <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
</mvc:interceptors>