熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

struts國際化程序嘗試

2013-11-23 20:21:18  來源: Java開源技術 

  struts是一個MVC框架像Java和其他Java框架一樣struts可以輕松實現國際化於是根據網上的資料做了一個嘗試因為第一次做多語言程序還是拐了很多彎路但所幸經過不斷的嘗試終於成功的實現多語言版本的簡單頁面 因為程序非常簡單所以在整個嘗試過程中全部使用手工編碼沒有使用任何輔助工具
  
   建立服務器
  我使用Tomcat作為測試環境建立過程(略);
  
   下載struts
  可以到下載下載後解壓把其中的war文件拷貝到Tomcat的webapps目錄下啟動Tomcat如//localhost:/strutsexample/ 運行沒有問題說明環境建立成功這些war文件在Tomcat啟動後會自動展開成文件裡面有源代碼可以作為源碼研究
  
   建立工程
  在webapps目錄下建立一個international文件夾再在international目錄下建立WEBINF文件夾和WEBINF/classes文件夾這些都是一個JSP工程必須的
  
   加了struts的類
  在WEBINF目錄下建立一個lib子目錄把strutsexample\WEBINF\lib目錄下將所有jar文件拷貝到該目錄下這些文件是struts的控制類庫和標簽類庫等
  commonsbeanutilsjar
  commonscollectionsjar
  commonsdigesterjar
  commonsfileuploadjar
  commonslangjar
  commonsloggingjar
  commonsvalidatorjar
  jakartaorojar
  strutsjar
  
   加入struts標簽定義文件
  從strutsexample\WEBINF目錄下TLD文件拷貝到international的WEBINF目錄下這些文件標簽庫的定義文件
  strutsbeantld
  strutshtmltld
  strutslogictld
  strutsnestedtld
  strutstemplatetld
  strutstilestld
  
   建立struts的config文件
  建立struts的config文件的strutsconfigxml內容如下
  
  <?xml version= encoding=ISO ?>
  
  <!DOCTYPE strutsconfig PUBLIC
  //Apache Software Foundation//DTD Struts Configuration //EN config__dtd;>
  
  <strutsconfig>
  
  <messageresources parameter=resourcesapplication/>
  
  </strutsconfig>
  
  messageresources標簽是指message資源的文件就是我們存放我們的多種語言的提示信息的文件resourcesapplication表是classes目錄下的resources目錄用來存放資源文件默認語言文件名為applicationproperties中文為application_zh_CNproperties其他語言類似
  
   建立webxml文件
  <?xml version= encoding=ISO?>
  
  <!DOCTYPE webapp
  PUBLIC //Sun Microsystems Inc//DTD Web Application //EN
  app__dtd;>
  
  <webapp>
  <displayname>test international</displayname>
  
  <servlet>
  <servletname>action</servletname>
  <servletclass>orgapachestrutsactionActionServlet</servletclass>
  <initparam>
  <paramname>config</paramname>
  <paramvalue>/WEBINF/strutsconfigxml</paramvalue>
  </initparam>
  <initparam>
  <paramname>debug</paramname>
  <paramvalue></paramvalue>
  </initparam>
  <initparam>
  <paramname>detail</paramname>
  <paramvalue></paramvalue>
  </initparam>
  <loadonstartup></loadonstartup>
  </servlet>
  
  <servletmapping>
  <servletname>action</servletname>
  <urlpattern>*do</urlpattern>
  </servletmapping>
  
  <welcomefilelist>
  <welcomefile>indexjsp</welcomefile>
  </welcomefilelist>
  
  <taglib>
  <tagliburi>/tags/strutsbean</tagliburi>
  <tagliblocation>/WEBINF/strutsbeantld</tagliblocation>
  </taglib>
  
  <taglib>
  <tagliburi>/tags/strutshtml</tagliburi>
  <tagliblocation>/WEBINF/strutshtmltld</tagliblocation>
  </taglib>
  
  <taglib>
  <tagliburi>/tags/strutslogic</tagliburi>
  <tagliblocation>/WEBINF/strutslogictld</tagliblocation>
  </taglib>
  
  <taglib>
  <tagliburi>/tags/strutsnested</tagliburi>
  <tagliblocation>/WEBINF/strutsnestedtld</tagliblocation>
  </taglib>
  
  <taglib>
  <tagliburi>/tags/strutstiles</tagliburi>
  <tagliblocation>/WEBINF/strutstilestld</tagliblocation>
  </taglib>
  
  </webapp>
  上面的webxml定義了struts的控制類config文件和標簽因為比較簡單所以不做解釋
  
   建立資源文件
  在classes目錄下建立一個resources目錄用來存放資源文件 先建立默認的資源文件applicationproperties和英文(美國)的資源文件application_en_USproperties內容為
  
  # international test
  testtitle=international application test
  testbody=This is a international application test
  
  先建立這兩個文件中文的等下一步建立
  
  建立jsp文件
  在international目錄下建立indexjsp文件內容為
  
  <%@ page contentType=text/html;charset=UTF %>
  <%@ taglib uri=/tags/strutsbean prefix=bean %>
  <%@ taglib uri=/tags/strutshtml prefix=html %>
  <%@ taglib uri=/tags/strutslogic prefix=logic %>
  <html:html locale=true>
  <head>
  <title><bean:message key=testtitle/></title>
  <html:base/>
  </head>
  <body bgcolor=white>
  
  <p><bean:message key=testbody/></p>
  
  </body>
  </html:html>
  
  在這裡<html:html locale=true>表示使用浏覽器默認的地區和語言<bean:message key=testtitle/>的意思是取對應資源文件裡的testtitle項目的內容 啟動Tomcat在浏覽器裡輸//localhost:/international/查看效果如果浏覽器標題顯示international application test頁面裡顯示This is a international application test則說明你的程序成功了下面只要增加資源文件你就可以在多種語言的系統裡看了
  
   建立簡體中文的資源文件
  在resources目錄下建立一個application_cnproperties輸入內容
  
  # international test
  testtitle=國際化程序測試
  testbody=這是一個國際化程序測試例子
  
  因為java的國際化是通過unicode碼來實現所以要把代碼轉為unicode碼在Dos下轉到resources目錄執行
  nativeascii application_cnproperties application_zh_CNproperties
  轉換後的application_zh_CNproperties文件內容為
  
  # international test
  testtitle=\ufd\u\u\uab\uef\udb\ubd
  testbody=\ufd\uf\ue\uea\ufd\u\u\uab\uef\udb\ubd\ufb\ub
  
  這就是上面的中文的unicode碼 重新啟動Tomcat 在浏覽器裡輸//localhost:/international/你看標題和內容是不是變成中文了
  
   建立繁體中文的資源文件
  在resources目錄下建立一個application_twproperties輸入內容
  
  # international test
  testtitle=???H化程式?y??
  testbody=?@是一?????H化程式?y??例子
  
  因為java的國際化是通過unicode碼來實現所以要把代碼轉為unicode碼在Dos下轉到resources目錄執行
  nativeascii application_twproperties application_zh_TWproperties
  轉換後的application_zh_TWproperties文件內容為
  
  # international test
  testtitle=\ub\ub\u\uab\uff\uec\ua
  testbody=\u\uf\ue\ub\ub\ub\u\uab\uff\uec\ua\ufb\ub
  
  這就是上面的繁體中文的unicode碼
  
   測試多語言
  打開IE的工具>Internet選項菜單常規選項卡點擊其中的語言按鈕添加英語(美國)[enus]
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28365.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.