问题描述
我利用SPRING4MVC配置了动态切换语言,但是在页上点击中文、英文切换的时候不起作用。请高手看看spring-servlet.xml配置文件:<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--<mvc:annotation-driven><mvc:message-convertersregister-defaults="true"><beanclass="org.springframework.http.converter.StringHttpMessageConverter"><propertyname="supportedMediaTypes"value="text/plain;charset=UTF-8"/></bean></mvc:message-converters></mvc:annotation-driven>--><!--启用SpringMVC注解功能--><mvc:annotation-driven/><!--启动Srping组件自动扫描机制,Spring会自动扫描base-package包及其子包下面的类--><context:component-scanbase-package="com.efs.business"/><!--设置视图解析类,使用默认的JSTL解析器--><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/jsp"/><propertyname="suffix"value=".jsp"/><propertyname="viewClass"value="org.springframework.web.servlet.view.JstlView"/></bean><!--系统配置拦截器--><mvc:interceptors><!--切换语言拦截器--><mvc:interceptor><mvc:mappingpath="/*"/><refbean="localeChangeInterceptor"/></mvc:interceptor></mvc:interceptors><!--配置国际化资源文件,包括动态切换START--><beanid="messageSource"class="org.springframework.context.support.ResourceBundleMessageSource"><propertyname="basename"value="com.efs.resource.Message"/></bean><beanid="localeResolver"class="org.springframework.web.servlet.i18n.SessionLocaleResolver"></bean><beanid="localeChangeInterceptor"class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"><propertyname="paramName"value="locale"/></bean><!--配置国际化资源文件,包括动态切换END--></beans>
切换Controller:packagecom.efs.business.locale;importjava.util.Locale;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.servlet.LocaleResolver;@Controller@RequestMapping("/locale")publicclassSysLocaleController{@AutowiredprivateLocaleResolverlocaleResolver;@RequestMapping("/changeLocale")publicStringchangeLocale(Stringlocale,HttpServletRequestrequest,HttpServletResponseresponse){Localel=newLocale(locale);localeResolver.setLocale(request,response,l);return"redirect:/demo/index.do";}}
HTML页面:<ahref="<%=basePath%>/locale/changeLocale.do?locale=zh_CN">中文</a>|<ahref="<%=basePath%>/locale/changeLocale.do?locale=en_US">English</a><hr/><formaction="<%=basePath%>/demo/login.do"method="post"id="form"><!--页面上使用资源国际化--><sf:messagecode="demo.label.userName"/>:<inputtype="text"name="userName"value="${form.userName}"/><br/><sf:messagecode="demo.label.password"/>:<inputtype="password"name="password"/><br/>
解决方案
解决方案二:
这么早就玩上了4了?有什么新特性
解决方案三:
难道没有人碰到这种问题吗