gpt4 book ai didi

java - Spring MVC默认Locale和Locale改变不起作用

转载 作者:行者123 更新时间:2023-12-01 12:22:31 37 4
gpt4 key购买 nike

我是一名新的 Spring 开发人员,尝试开发支持两​​种语言的示例 Web 应用程序。我想将默认区域设置设置为阿拉伯语,并在用户在 JSP 页面中单击所需语言时更改区域设置。

这是我的 mvc-dispatcher-servlet.xml,

<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven/>

<!-- Handles HTTP GET requests for /resources/** by efficiently serving
up static resources in the ${webappRoot}/resources directory -->
<mvc:resources mapping="/resources/**" location="/resources/" />
<context:component-scan base-package="com.benchmark.ushers.presentation.controller"/>

<bean id="internalResourceResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>

<!-- resource bundle configuration-->
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:locale/messages" />
<property name="fallbackToSystemLocale" value="false"/>
<property name="defaultEncoding" value="UTF-8"/>
</bean>

<bean id="localeResolver"
class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="defaultLocale" value="ar" />
</bean>

<mvc:interceptors>
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<property name="paramName" value="lang"></property>
</bean>
</mvc:interceptors>
<!-- end of resource bundle configuration-->

我的 JSP 页面如下,

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<tiles:insertDefinition name="defaultTemplate">
<tiles:putAttribute name="body">



<div class="body">
<h1>Ushers</h1>

lang : <a href="?lang=en">English</a> | <a
href="?lang=ar">Arabic</a>

<h3>
welcome.springmvc :
<spring:message code="footer.content" text="default text" />
</h3>

<h3>
hello :
<spring:message code="footer.hello" text="default text" />
</h3>


</div>



</tiles:putAttribute>
</tiles:insertDefinition>

我不知道我的代码有什么问题,而只显示英文文本。

最佳答案

问题中的上述配置是正确的。问题在于请求的页面在 web.xml 文件中设置为欢迎页面,因此它是在没有任何拦截器的情况下执行的。

在 web.xml 中注释此部分后,一切正常

<!--  <welcome-file-list>
<welcome-file>/WEB-INF/pages/adminHome.jsp</welcome-file>
</welcome-file-list>-->

关于java - Spring MVC默认Locale和Locale改变不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26573886/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com