2014-01-16 59 views
4

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

现在,我尝试使用显示

<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 } 

我使用弹簧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

摆脱空间。 '“$ {PageContext.request.locale.language}”' – EJP

+0

@EJP,我也试过所有没有空格的样本。同样的效果。更新了问题。 – DukeMe

+0

添加了一个示例maven项目的链接来说明问题。 – DukeMe

回答

10

我试图从GitHub你的榜样,它似乎对我表达合作 -

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

我不得不改变是Web应用程序的名称空间和模式,以2.5为相对于2.3版本的唯一的事你的web.xml文件,因为我使用jdk 7与tomcat 7.

+0

谢谢@Ivey将webapp设置为2.5解决了问题。我更新了github存储库以反映您的解决方案。问题的关键是美元报表没有评估。 – DukeMe