在JSTL中显示区域设置

Duk*_*eMe 4 java locale jstl spring-mvc

在jstl页面中,我想显示用于呈现页面的当前区域设置.页面区域设置工作得很好.当我切换语言环境(?lang = nl)时,使用nl资源包.当切换回英语(?lang = en)时,使用en resouce包.

现在我尝试使用显示区域设置

<c:out value="${ PageContext.request.locale.language }"/>
Run Code Online (Sandbox Code Playgroud)

但这只显示文字字符串 ${ PageContext.request.locale.language }

我尝试过很多样本.有和没有空间.

${ pageContext.request.locale.language }
${ pageContext.locale }
${ pageContext.getLocale }
${ requestContext.locale.language }
${ request.locale.language }
Run Code Online (Sandbox Code Playgroud)

我正在使用具有以下配置的spring-mvc

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

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>
</bean>
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
    <property name="defaultLocale" value="en"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

可以在https://github.com/abroer/jsltSpringLocaleProblem上找到重现此问题的代码

任何人都可以帮我解决这个问题.谢谢你的努力.我真的很喜欢它.

小智 10

我试着从github你的例子,它似乎适用于我的表达 -

<c:out value="${pageContext.request.locale.language}"/> 
Run Code Online (Sandbox Code Playgroud)

我唯一要改变的是webapp命名空间和模式到2.5而不是你的web.xml文件中的2.3版,因为我正在使用带有tomcat 7的jdk 7.