2010-01-19 139 views
1

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

我urlrewrite规则重写/ FR/*到/ *?siteLang = FR

我看到的例子如何根据参数设置的地点,但他们都是相同的,并要求我使用的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> 

有作为dispatchController在我的XML,所以我不能使用它,但想法是将拦截(以任何方式)都没有这样的事情。

我基本上会喜欢在URI后跟应用程序有点像 /FR /用户/细节 /德/产品/高保真的开始与区域设置的URL 等

不同的控制器使用相同的约定重写网址,从不使用siteLang控制器的具体原因。

谢谢

回答

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