当前位置: 代码迷 >> Java Web开发 >> 一个Struts的国际化有关问题
  详细解决方案

一个Struts的国际化有关问题

热度:152   发布时间:2016-04-17 12:26:35.0
一个Struts的国际化问题!
我的一个国际化问题:
一个登陆界面,如下:




下面有一个“English”和“chinese”的链接,只要点击任何一个都能国际化,而不是要通过更改Internet的语言设置,再刷新来更改?

主页面中的:<li><html:link action="/Locale?language=en">English</html:link></li>
  <li><html:link action="/Locale?language=zh"useLocalEncoding="true">chinese</html:link></li>
要怎么写这个Action来完成啊?

请说的详细点啊!!!我是新手,很垃圾的~~~`帮帮忙啊~~~~~
我在这里谢过了!!!!

------解决方案--------------------
首先,你可以把索要设置的的语言写入cookie里比如:0代表China 1代表English
我这里有代码,你可以查考下:
Java code
import org.apache.struts.Globals;import java.util.Locale;import javax.servlet.http.Cookie;  public   ActionForward   execute(ActionMapping   mapping,                                         ActionForm   form,  HttpServletRequest   request,                                           HttpServletResponse   response)                                             throws   Exception   {           LoginForm frm = (LoginForm) actionForm;                        String param="0";        Cookie[] allcookie=servletRequest.getCookies();                       if(frm.getLanguage()==null){           //首先获取cookie            for(int i=0;i<allcookie.length;i++){                     if(allcookie[i].getName().equals("language")){                                    param=allcookie[i].getValue();                    break;                }                else{          //set cookie default 0                    Cookie cookie=new Cookie("language",param);                            cookie.setMaxAge(60*60*24*365);          //一年                          servletResponse.addCookie(cookie);                                                          }            }        }                else{               //set cookie                        Cookie cookie=new Cookie("language",frm.getLanguage());        //设置 cookie 0             cookie.setMaxAge(60*60*24*365);                     //30*60 半小时            servletResponse.addCookie(cookie);                         param=frm.getLanguage();                    }                  switch(new Integer(param).intValue()){        case 0:            servletRequest.getSession().setAttribute(Globals.LOCALE_KEY,Locale.CHINA);            break;        case 1:            servletRequest.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);            break;           default:            servletRequest.getSession().setAttribute(Globals.LOCALE_KEY,Locale.ENGLISH);            break;                        }     return actionMapping.findForward("index");}
  相关解决方案