wiki:waue/2010/0805

Version 8 (modified by waue, 14 years ago) (diff)

--

JSP 支援多國語系
Tomcat + JSP + i18n + taglib

環境

  • sun java jdk 6
  • tomcat 6

範例

說明

  • 參數說明
$tomcat 代表你放tomcat的路徑。如 /opt/tomcat/
$pj 代表你的project 名稱。如:i18n
$worspace 代表你Eclipse該專案所放置的路徑。如:/home/myname/workspace/
  • 以下提供兩種實做的方法,第一種是直接放到 tomcat 下的目錄下;第二種方法用Eclipse 輔助編輯與即時編譯

內容

  • web.xml (可參考附件)
Tomcat $tomcat/webapps/$pj/WEB-INF/web.xml
Eclipse $worspace/$pj/WebContent/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <display-name>i18n</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
<taglib>
  <taglib-uri>http://jakarta.apache.org/taglibs/i18n-1.0</taglib-uri>
  <taglib-location>/WEB-INF/taglibs-i18n.tld</taglib-location>
</taglib>

</web-app>

  • index.jsp
Tomcat $tomcat/webapps/$pj/index.jsp
Eclipse $worspace/$pj/WebContent/index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" 
import="java.io.*,java.text.*,java.util.*,javax.servlet.jsp.*" %>
<%@ taglib uri="http://jakarta.apache.org/taglibs/i18n-1.0" prefix="i18n" %>
<HTML>
<HEAD>
  <TITLE>Examples of I18N Custom Tag Library 
  Tag Usage</TITLE>
</HEAD>
<BODY>
This page displays all key/value pairs in the bundle.
locale = <b><%= pageContext.getResponse().getLocale() %></b><br>
charset = <b><%= pageContext.getResponse().getCharacterEncoding() %></b><br>
<H2>WebApp translations</H2>
<%
Locale locale = new Locale("zh",""); 
%>
<i18n:bundle baseName="org.mytest.i18n" locale="<%=locale%>" id="bundle"/>
<TABLE>
 <TR> <TD>1</TD><TD> <i18n:message key="test1"/></TD> </TR>
 <TR> <TD>2</TD><TD> <i18n:message key="test2"/></TD> </TR>
</TABLE>
</BODY>
</HTML>
  • taglibs-i18n.tld
Tomcat $tomcat/webapps/$pj/WEB-INF/taglibs-i18n.tld
Eclipse $worspace/$pj/WebContent/WEB-INF/taglibs-i18n.tld

(可下載附件)

  • taglibs-i18n.jar
Tomcat $tomcat/webapps/$pj/WEB-INF/lib/taglibs-i18n.jar
Eclipse $worspace/$pj/WebContent/WEB-INF/lib/taglibs-i18n.jar

(可下載附件)

  • i18n_en.properties
Tomcat $tomcat/webapps/$pj/WEB-INF/classes/org/mytest/i18n_en.properties
Eclipse $worspace/$pj/src/org/mytest
test1 = Hello world
test2 = Now you can let jsp i18n using i18n taglib!
Tomcat $tomcat/webapps/$pj/WEB-INF/classes/org/mytest/i18n_zh_TW.properties
Eclipse $worspace/$pj/src/org/mytest
test1 = &#x4F60;&#x597D;&#xFF01;&#x4E16;&#x754C;
test2 = &#x4F60;&#x73FE;&#x5728;&#x5DF2;&#x7D93;&#x80FD;&#x8B93;&#x4F60;&#x7684;JSP&#x4F7F;&#x7528;I18N&#x7684;taglib&#x8DDF;&#x4E16;&#x754C;&#x63A5;&#x8ECC;&#x56C9;&#xFF01;

結果

http://localhost:8080/$pj/index.jsp

Attachments (2)

Download all attachments as: .zip