2014-01-16 61 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