在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
上找到重现此问题的代码任何人都可以帮我解决这个问题。谢谢你的努力。我非常喜欢它。
答案 0 :(得分:10)
我尝试使用github中的示例,它似乎适用于我的表达式 -
<c:out value="${pageContext.request.locale.language}"/>
我唯一要改变的是webapp命名空间和模式到2.5而不是你的web.xml文件中的2.3版,因为我正在使用带有tomcat 7的jdk 7。