首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

一个Struts的国际化有关问题

2011-12-30 
一个Struts的国际化问题!我的一个国际化问题:一个登陆界面,如下:下面有一个“English”和“chinese”的链接,只

一个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");} 

热点排行