1、struts國(guó)際化的配置
 * 在struts-config.xml文件中加入:<message-resources parameter="MessageResources" />
 
2、提供不同版本的國(guó)際化資源文件,中文需要采用native2ascii轉(zhuǎn)換成unicode

3、在jsp中采用<bean:message>標(biāo)簽來讀取國(guó)際化消息文本

4、了解利用struts默認(rèn)將locale放到session中的特性,完成采用編程的方式切換語言設(shè)置
 * 參見:ChangeLanguageAction.java
 
5、消息文本的國(guó)際化處理,共有三個(gè)步驟:
 * 創(chuàng)建國(guó)際化消息
 * 傳遞國(guó)際化消息
 * 顯示國(guó)際化消息
 
如何創(chuàng)建國(guó)際化消息?
 理解ActionMessage和ActionMessages兩個(gè)對(duì)象的區(qū)別
 
如何傳遞國(guó)際化消息?
 * 調(diào)用saveMessage()傳遞普通消息,調(diào)用saveErrors傳遞錯(cuò)誤消息
 
如何顯示國(guó)際化消息?
 通過<html:messages>標(biāo)簽顯示消息(可以顯示普通消息和錯(cuò)誤消息)
 通過<html:errors>顯示消息(只能顯示錯(cuò)誤消息) 

當(dāng)將國(guó)際化資源文件放入到一個(gè)包時(shí),在struts-config.xml文件中加入:<message-resources parameter="包名.MessageResources" />

ChangeLanguageAction.java

 1import java.util.Locale;
 2
 3import javax.servlet.http.HttpServletRequest;
 4import javax.servlet.http.HttpServletResponse;
 5
 6import org.apache.struts.Globals;
 7import org.apache.struts.action.Action;
 8import org.apache.struts.action.ActionForm;
 9import org.apache.struts.action.ActionForward;
10import org.apache.struts.action.ActionMapping;
11
12public class ChangeLanguageAction extends Action {
13
14    @Override
15    public ActionForward execute(ActionMapping mapping, ActionForm form,
16            HttpServletRequest request, HttpServletResponse response)
17            throws Exception {
18        String lang = request.getParameter("lang");
19        
20        Locale currentLocale = Locale.getDefault(); 
21        if ("zh".equals(lang)) {
22            currentLocale = new Locale("zh""CN");
23        }
else if("en".equals(lang)) {
24            currentLocale = new Locale("en""US");
25        }

26        //request.getSession().setAttribute(Globals.LOCALE_KEY, currentLocale);
27        
28        this.setLocale(request, currentLocale);
29        return mapping.findForward("index");
30    }

31
32}