struts多國語言國際化處理(現以中文英文切換為例) (轉)
1.引言
? 因為最近有個英國的項目要求中英文切換,又由于我們開發是用struts+hibernate的,所以我們就把原先做兩個版本的構思拋掉,就用struts的國際化處理方案。
2.資料
? 首先,我們要準備兩份配置文件中文和英文的
? 中文:ApplicationResources_zh_CN.properties
? 英文:ApplicationResources_en.properties? (千萬不要用默認的ApplicationResources.properties myeclipse自動生成,可能會不成功,我起先就是因為這個怎么都不行的,呵呵!)
3.準備開始
1)?ApplicationResources_zh_CN.properties的內容
#zh_CN
username=純冰
2)ApplicationResources_en.properties的內容
#en
username=chunkyo
3)一個action
/*
?* Generated by MyEclipse Struts
?* Template path: templates/java/JavaClass.vtl
?*/
package com.lan.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.Globals;
import java.util.Locale;
/**
?* MyEclipse Struts
?* Creation date: 02-07-2007
?*
?* XDoclet definition:
?* @struts.action validate="true"
?*/
public class ChangeLanguageAction extends Action {
?/*
? * Generated Methods
? */
?/**
? * Method execute
? * @param mapping
? * @param form
? * @param request
? * @param response
? * @return ActionForward
? */
?public ActionForward execute(ActionMapping mapping, ActionForm form,
???HttpServletRequest request, HttpServletResponse response) {
??// TODO Auto-generated method stub
??String lan=request.getParameter("lan");
??if(lan.equals("1"))
??{
???request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
??}
??else if(lan.equals("0"))
??{
???request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);
??}
??else
??{
???request.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);
??}
??return mapping.findForward("index");
?}
}
4)一個頁面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
? <head>
??? <html:base />
???
??? <title><bean:message key="username"/></title>
?<meta http-equiv="pragma" content="no-cache">
?<meta http-equiv="cache-control" content="no-cache">
?<meta http-equiv="expires" content="0">???
?<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
?<meta http-equiv="description" content="This is my page">
?<!--
?<link rel="stylesheet" type="text/css" href="styles.css">
?-->
? </head>
?
? <body>
??? <html:link page="/changeLanguage.do?lan=0">English</html:link>
??? <html:link page="/changeLanguage.do?lan=1">Chinese</html:link>
??? <bean:message key="username"/>
? </body>
</html:html>
4)配置文件(struts-config.xml)
<?xml version="1.0" encoding="UTF-8"?>
<!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>
? <data-sources />
? <form-beans />
? <global-exceptions />
? <global-forwards >
??? <forward name="index" path="/index.jsp" />
? </global-forwards>
? <action-mappings >
??? <action path="/changeLanguage" type="com.lan.struts.action.ChangeLanguageAction" />
? </action-mappings><message-resources parameter="com.lan.struts.ApplicationResources" />
</struts-config>
5)結果
?1。默認
http://localhost:8080/lan/
EnglishChinese 純冰
2。英文
http://localhost:8080/lan/changeLanguage.do?lan=0
EnglishChinese chunkyo
3。中文
http://localhost:8080/lan/changeLanguage.do?lan=1
EnglishChinese 純冰
6)結論
用struts做國際化處理 多國語言處理很方便 呵呵!
posted on 2007-03-23 09:39 liaojiyong 閱讀(2597) 評論(2) 編輯 收藏 所屬分類: Struts