程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Struts國際化編程輕松實現

Struts國際化編程輕松實現

編輯:關於JAVA

struts是一個MVC框架,像Java和其他Java框架一樣,struts可以輕松實現國際化;於是根據網上的資料,做了一個嘗試,因為第一次做多語言程序,還是拐了很多彎路;但所幸,經過不斷的嘗試,終於成功的實現多語言版本的簡單頁面;

因為程序非常簡單,所以在整個嘗試過程中,全部使用手工編碼,沒有使用任何輔助工具;

1、建立服務器

我使用Tomcat4作為測試環境,建立過程(略);

2、下載struts

可以到http://jakarta.apache.org/struts/index.html下載,下載後解壓,把其中的.war文件拷貝到Tomcat的webapps目錄下,啟動Tomcat,如果http://localhost:8080/struts-example/ 運行沒有問題,說明環境建立成功;這些.war文件在Tomcat啟動後會自動展開成文件,裡面有源代碼,可以作為源碼研究;

3、建立工程

在webapps目錄下建立一個international文件夾,再在international目錄下建立WEB-INF文件夾和WEB-INF/classes文件夾,這些都是一個JSP工程必須的;

4、加了struts的類

在WEB-INF目錄下建立一個lib子目錄,把struts-example\WEB-INF\lib目錄下將所有.jar文件拷貝到該目錄下;這些文件是struts的控制類庫和標簽類庫等;

commons-beanutils.jar

commons-collections.jar

commons-digester.jar

commons-fileupload.jar

commons-lang.jar

commons-logging.jar

commons-validator.jar

jakarta-oro.jar

struts.jar

5、加入struts標簽定義文件

從struts-example\WEB-INF目錄下,把.TLD文件拷貝到international的WEB-INF目錄下,這些文件標簽庫的定義文件;

struts-bean.tld

struts-html.tld

struts-logic.tld

struts-nested.tld

struts-template.tld

struts-tiles.tld

6、建立struts的config文件

建立struts的config文件的struts-config.xml,內容如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>
<struts-config>
<message-resources parameter="resources.application"/>
</struts-config>

message-resources標簽是指message資源的文件,就是我們存放我們的多種語言的提示信息的文件,resources.application表是classes目錄下的resources目錄用來存放資源文件,默認語言文件名為application.properties,中文為application_zh_CN.properties,其他語言類似;

7、建立web.xml文件

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>
<web-app>
<display-name>test international</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>/tags/struts-bean</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-logic</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-nested</taglib-uri>
<taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/tags/struts-tiles</taglib-uri>
<taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>
</web-app>

上面的web.xml定義了struts的控制類、config文件和標簽,因為比較簡單,所以不做解釋;

8、建立資源文件

在classes目錄下,建立一個resources目錄,用來存放資源文件;

先建立默認的資源文件application.properties和英文(美國)的資源文件application_en_US.properties,內容為:

# -- international test --

test.title=international application test

test.body=This is a international application test

先建立這兩個文件,中文的等下一步建立

9、建立jsp文件

在international目錄下,建立index.jsp文件,內容為:

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<html:html locale="true">
<head>
<title><bean:message key="test.title"/></title>
<html:base/>
</head>
<body bgcolor="white">
<p><bean:message key="test.body"/></p>
</body>
</html:html>

在這裡<html:html locale="true">表示使用浏覽器默認的地區和語言;<bean:message key="test.title"/>的意思是取對應資源文件裡的test.title項目的內容; 啟動Tomcat,在浏覽器裡輸入http://localhost:8080/international/,查看效果,如果浏覽器標題顯示international application test,頁面裡顯示This is a international application test則說明你的程序成功了;下面只要增加資源文件,你就可以在多種語言的系統裡看了;

10、建立簡體中文的資源文件

在resources目錄下建立一個application_cn.properties,輸入內容:

# -- international test --
test.title=國際化程序測試
test.body=這是一個國際化程序測試例子

因為java的國際化是通過unicode碼來實現,所以要把代碼轉為unicode碼;在Dos下,轉到resources目錄,執行:

native2ascii application_cn.properties application_zh_CN.properties

轉換後的application_zh_CN.properties文件內容為:

# -- international test --
test.title=\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5
test.body=\u8fd9\u662f\u4e00\u4e2a\u56fd\u9645\u5316\u7a0b\u5e8f\u6d4b\u8bd5\u4f8b\u5b50

這就是上面的中文的unicode碼;

重新啟動Tomcat, 在浏覽器裡輸入http://localhost:8080/international/,你看,標題和內容是不是變成中文了;

11、建立繁體中文的資源文件

在resources目錄下建立一個application_tw.properties,輸入內容:

# -- international test --

test.title=???H化程式?y??

test.body=?@是一?????H化程式?y??例子

因為java的國際化是通過unicode碼來實現,所以要把代碼轉為unicode碼;在Dos下,轉到resources目錄,執行:

native2ascii application_tw.properties application_zh_TW.properties

轉換後的application_zh_TW.properties文件內容為:

# -- international test --
test.title=\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66
test.body=\u9019\u662f\u4e00\u500b\u570b\u969b\u5316\u7a0b\u5f0f\u6e2c\u8a66\u4f8b\u5b50

這就是上面的繁體中文的unicode碼;

12、測試多語言

打開IE的“工具”->“Internet選項”菜單,“常規”選項卡,點擊其中的“語言”按鈕,添加“英語(美國)-[en-us]”語言,將其他的語言刪除,重新啟動IE後,輸入http://localhost:8080/international/index.jsp,你會發現內容已經變成英文;

用同樣的方法,可以測試簡體中文和繁體中文;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved