applicationContext.xml中的核心这样配置的。
 <!-- 配置spring mvc 模式 -->
    <bean id="viewResolver"
     class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        <property name="prefix"><value>/</value></property>
        <property name="suffix"><value>.jsp</value>
        </property>
    </bean>
    
   
    <!-- Register the welcome.properties -->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:welcome" />
<property name="defaultEncoding" value="UTF-8"/>
</bean>
<bean id="localeChangeInterceptor"
class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="language" />
</bean>
<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="zh_CN" />
</bean>

<bean id="handlerMapping"
class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<ref bean="localeChangeInterceptor" />
</property>

</bean>
    web.xml中核心配置:
<display-name>com.huawei.datavoice.web</display-name> <session-config>
<session-timeout>20</session-timeout>
</session-config> <!-- 实例化spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:applicationContext.xml
</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 使用spring处理字符集 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping> <!-- 配置 springmvc 的servlet -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>问题:
国际化只能拦截*.do 结尾的请求,如果是*.jsp结尾的国际化就不起作用了。应该要修改拦截器规则,本人没做spring国际化过,是在网上找的资料,这种问题不知如何解决,希望高手帮忙,谢谢!!!

解决方案 »

  1.   

    严格的应用使用 .do 转发到 jsp 页面就可以了,没必要直接访问 jsp 页面,这样做安全性也不高。
      

  2.   

    恩,但是有些直接在页面间跳转的,因为业务需要我页面上的数据时通过ajax加载的。没有必要为了实现这个功能来增加一个controller来。
      

  3.   

     <filter-mapping>
            <filter-name>encodingFilter</filter-name>
            <url-pattern>*.do</url-pattern>
        </filter-mapping>你自己的拦截器,定义的是*.do,他只会去拦截以.do结尾的url,不拦截.jsp很正常
    简单的方法:
    <url-pattern>[color=#FF0000]]*.do,*.jsp[/color</url-pattern>
      

  4.   

    <filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>*.do</url-pattern>
      </filter-mapping>你自己的拦截器,定义的是*.do,他只会去拦截以.do结尾的url,不拦截.jsp很正常
    简单的方法:
    <url-pattern>]*.do,*.jsp</url-pattern>
      

  5.   

    encodingFilter真能在这里改了?设置字符集过滤器
    你应该是想说让我改线面这段代码吧?
    <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
    不能在这里改呀!我用的是springMVC,XXX.jsp是可以被国际化拦截器拦截,但是这样的话所有xxx.jsp的请求都将spring的DispatcherServlet拦截,去寻找对应的xxxServlet或是Controller。这样我还不时对xxx.jsp映射了一个controller?
      

  6.   

    不用问了,要把jsp放到web-inf下用服务器跳转才行
      

  7.   

    唉!看来只能通过controller跳转了。结贴了。
      

  8.   

    楼主,你说的这个问题是否已经解决?今天在做国际化,也遇到了同样的问题,求解。
    如果是放到controller里去做的话,就多谢回答了。目的就是能够直接在jsp里使用国际化标签,还请各位大虾多多回复啊