jsp使用jstl標籤實現國際化

在某一些項目中須要界面展現的國際化(i18n),即根據用戶需求顯示不一樣的語言,在jsp上有多個實現方案,可是對於jstl的方案網上資料不是很齊全,這裏我給出一個使用jstl標籤庫實現的例子,演示代碼能夠在這裏找到。 html

一、準備 java

jstl標籤庫jar包 git

相應語言資源的properties文件,推薦使用propertieseditor編輯,有eclipse插件也有單獨編輯器 session

二、開發步驟 eclipse

爲了演示開發過程,這裏準備一個用戶登陸的程序,代碼在這裏http://git.oschina.net/songxinqiang/Samplesjsp

登錄頁面首先判斷sesion裏面有沒有設置語言,沒有的話添加默認語言 編輯器

<c:if test="${empty sessionScope.lan}">
    <c:set var="lan" value="en_US"/>
</c:if>
而後頁面總體都放在資源庫標籤裏面


<fmt:bundle basename="${lan}">
<html>

……………………
</html>
</fmt:bundle>
而後須要顯示內容的地方用這個標籤


<fmt:message key="username" />
這裏的key值須要在資源文件裏面定義,定義的格式爲


username=用戶名

服務端須要將用戶選擇的語言存入session 工具

String lan=request.getParameter("lan");
		
request.getSession().setAttribute("lan", lan);
這樣就能夠根據用戶須要顯示不一樣語言了,固然是要先準備好資源文件

三、注意 編碼

資源文件使用的是properties文件,直接寫入中文是不行的,須要轉換爲unicode的代碼, spa

username=用戶名
這句其實是這樣的
username=\u7528\u6237\u540d
上面的是我使用propertieseditor編輯時的效果,他能夠自動轉換爲unicode編碼。

固然若是不想用這個編輯器,也能夠先寫成中文,而後用jdk自帶的工具轉換,這個能夠在網上找到。

資源文件要放在類根目錄哦,basename就是指的資源文件的文件名

四、總結

使用jstl標籤庫實現國際化很是方便,可是須要在項目開發基本完成後進行,由於須要對項目中全部須要進行國際化顯示的內容進行資源配置,若是在初期就進行的話,會至關麻煩。

若有不足之處,歡迎你們進行指正。

相關文章
相關標籤/搜索