2016-11-24 64 views
0

我想setLocale的JSP頁面上,但感覺像它的延遲或東西,我拉我的頭髮試圖找出爲什麼...setLocale的似乎要推遲

<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

<c:set var="language" value="${not empty param.lang ? param.lang : not empty language ? language : 'en_HK'}" scope="session" /> 
<fmt:setBundle basename="i18n.common" scope="session"/> 
<fmt:setLocale value="${language}" scope="session"/> 
${language} 
<fmt:message key="nav.home" /> 

的我第一次加載http://localhost:8080/,我會得到

en_HK 主頁 

我刷新頁面:

en_HK Home 

然後我打開http://localhost:8080/?lang=zh_HK

zh_HK Home 

然後我加載http://localhost:8080/

zh_HK 主頁 

然後http://localhost:8080/?lang=zh_CN

zh_CN 主頁 

我刷新頁面

zh_CN 主頁 

....我似乎只能得到下一次我加載頁面設置語言環境....

請幫我找出什麼是錯的......

更多信息: 如果我不設置setLocale的範圍會話/應用,從不改變。

回答

0

這是令人尷尬的,對於那些誰可以作出這裏同樣的錯誤是問題:

的setLocale應該被稱爲 setBundle,即

<fmt:setLocale value="${language}"/> 
<fmt:setBundle basename="text"/>