在JSTL中显示区域设置

时间:2014-01-16 21:29:40

标签: java spring-mvc jstl locale

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

现在我尝试使用

显示区域设置
<c:out value="${ PageContext.request.locale.language }"/>

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

我尝试过很多样本。有和没有空格。

${ pageContext.request.locale.language }
${ pageContext.locale }
${ pageContext.getLocale }
${ requestContext.locale.language }
${ request.locale.language }

我正在使用带有以下配置的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>

可以在https://github.com/abroer/jsltSpringLocaleProblem

上找到重现此问题的代码

任何人都可以帮我解决这个问题。谢谢你的努力。我非常喜欢它。

1 个答案:

答案 0 :(得分:10)

我尝试使用github中的示例,它似乎适用于我的表达式 -

<c:out value="${pageContext.request.locale.language}"/> 

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