Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringMVC语言环境没有';t开关语言_Spring_Spring Mvc_Model View Controller - Fatal编程技术网

SpringMVC语言环境没有';t开关语言

SpringMVC语言环境没有';t开关语言,spring,spring-mvc,model-view-controller,Spring,Spring Mvc,Model View Controller,我面临着SpringMVC中语言环境变化的问题。当我打开新语言(如fr)时,浏览器上会显示参数名称。但是,它不会改变语言。我还使用${pageContext.response.locale}进行测试。它不会改变。下面是我的代码 spring-web-servlet.xml /WEB-INF/views/jsp/ .jsp 这是因为您尚未注册拦截器 <bean id="handlerMapping" class="org.springframework.web.servlet.mvc.a

我面临着SpringMVC中语言环境变化的问题。当我打开新语言(如fr)时,浏览器上会显示参数名称。但是,它不会改变语言。我还使用${pageContext.response.locale}进行测试。它不会改变。下面是我的代码

spring-web-servlet.xml


/WEB-INF/views/jsp/
.jsp

这是因为您尚未注册拦截器

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

由于您使用
,这个bean定义没有任何作用

您应该使用
标记来正确注册拦截器

<mvc:interceptors>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>


这将使用
标记配置的所有已配置的
HandlerMapping
实例注册拦截器。另请参阅参考指南。

这是因为您尚未注册拦截器

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

由于您使用
,这个bean定义没有任何作用

您应该使用
标记来正确注册拦截器

<mvc:interceptors>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
</mvc:interceptors>


这将使用
标记配置的所有已配置的
HandlerMapping
实例注册拦截器。另请参见参考指南。

非常感谢。我仍在努力修复它。我确实向你登记。但是,它仍然不起作用。请确保删除了
DefaultAnnotationHandlerMapping
,并将如何加载配置添加到您的问题中。我已更新了上面的Spring配置,并添加了web.xml。我在控制台上看到以下错误“创建名为“handlerMapping”的bean时出错,该bean在ServletContext资源中定义[/WEB-INF/spring WEB servlet.xml]:使用键[0]设置bean属性“interceptors”时无法解析对bean“localeChangeInterceptor”的引用;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义名为“localeChangeInterceptor”的bean”。你能建议如何解决它吗。谢谢。正如我说的大约3次,我已经删除了该bean。你不需要它。非常感谢。我仍在尝试修复它。我确实注册了。但是,它仍然不起作用。请确保你删除了
DefaultAnnotationHandlerMapping
,并将如何加载配置添加到你的问题中n、 我已经更新了上面的Spring配置并添加了web.xml。我在控制台上看到以下错误“创建ServletContext资源[/web-INF/Spring web servlet.xml]中定义的名为“handlerMapping”的bean时出错]:在使用键[0]设置bean属性“interceptors”时无法解析对bean“localeChangeInterceptor”的引用;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:未定义名为“localeChangeInterceptor”的bean”。你能建议如何解决它吗。谢谢。正如我说的大约3次那样,已经删除了该bean。你不需要它。将
web.xml
添加到你的问题中。将
web.xml
添加到你的问题中。