Struts1实现登陆国际化

package com.demo.struts.action;

import java.io.IOException;

import java.io.PrintWriter;

import java.lang.reflect.Method;

import java.util.Locale;

import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

import com.demo.struts.form.LoginForm;

/**

 *继承DispathAction:将客户端请求进行分发

 *1.struts-config.xml-->action中添加parameter="method"属性

 *2.必须重写MethodgetMethod(Stringmethod)

 *@author

 */

publicclass LoginAction extends DispatchAction {

 

    public ActionForward login(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) {

       LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

        String username = loginForm.getUsername();

        String password = loginForm.getPassword();

        if(username != null && password != null && !"".equals(username) && !"".equals(password))

        {

            return mapping.findForward("success");

        }

        else

        {

            return mapping.findForward("error");

        }

      

    }

 

    public ActionForward selectLanguage(ActionMapping mapping, ActionForm form,

           HttpServletRequest request, HttpServletResponse response) throws IOException {

       //简单处理一下字符(建议创建过滤器实现Filter接口,对字符进行处理)

        request.setCharacterEncoding("UTF-8");

       response.setCharacterEncoding("UTF-8");

       PrintWriter out = response.getWriter();

       String language = request.getParameter("language");

       Locale locale = null;

       ResourceBundle rb = null;

       if(language !=null && !"".equals(language))

           locale = new Locale("");

       else

           locale = Locale.getDefault();

       if(language.equals("en"))

        rb = ResourceBundle.getBundle("struts_us_en",locale);

       else

        rb = ResourceBundle.getBundle("struts_zh_cn",locale);

       

        //读取上面资源文件中的数据(key-value)

        String un = rb.getString("username");

        String pn = rb.getString("password");

        String sn = rb.getString("submit");

        String cn = rb.getString("cancel");

        String lc = rb.getString("cn");

        String le = rb.getString("en");

        String select = rb.getString("select");

        String value =lc+","+le+","+select+","+un+","+pn+","+sn+","+cn;

        out.println(value);

       returnnull;

    }

 

    /**

     *重写父类的getMethod()方法

     */

    protected Method getMethod(String method) throws NoSuchMethodException {

       returnsuper.getMethod(method);

    }

}

2.ajax.js

function createXMLHttpRequest()

{

    var request = false;

    var language = document.getElementsByName("language")[0].value;

    if(window.XMLHttpRequest)

    {

       request =new XMLHttpRequest();

    }

    else if(window.ActiveXObject)

    {

       try{

           request = new ActiveXObject("Msxml2.XMLHTTP");

       }

       catch(ex1){

           try{

              request = new ActiveXObject("Microsoft.XMLHTTP");

           }

           catch(ex2){

              request = false;

           }

       }

    }

    request.open("get","http://localhost:18888/struts1.2/login.do?method=selectLanguage&language="+language,true);

    request.onreadystatechange = callback(request);

    request.send(null);

    return request;

}

function callback(request)

{

    return function()

    {

       if(request.readyState == 4)

       {

           if (request.status == 200)

            {

                var value = request.responseText;

                var array = value.split(',');

                document.getElementById("cn").innerHTML=array[0];

                document.getElementById("en").innerHTML=array[1];

                document.getElementsByName("select")[0].value=array[2];

                document.getElementById("username").innerHTML=array[3];

                document.getElementById("password").innerHTML=array[4];

                document.getElementsByName('submit')[0].value=array[5];

                document.getElementsByName('reset')[0].value=array[6];

            }

       }

    }

}

 

3.login.jsp

<%@ 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://java.sun.com/jsp/jstl/core" prefix= "c"%>

<!-- 嵌套js -->

<script type="text/javascript" src="js/ajax.js"></script>

<html>

    <head>

       <title>ajax+struts1.2国际化</title>

    </head>

    <body>

       <html:form action="login.do?method=login" method="post">

           <table>

              <tr>

                  <td width="60"></td>

                  <td>

                     <select name="language" tabindex="30">

                         <option value="cn" id="cn">中文</option>

                         <option value="en" id="en">英文</option>

                     </select>

                      

                     <html:button property="select" onclick="createXMLHttpRequest(this)">                  </html:button>

                  </td>

              </tr>

              <tr>

                  <td><span id="username">用户名:</span></td>

                  <td><html:text property="username" size="16"/></td>

              </tr>

              <tr>

                  <td><span id="password">  :</span></td>

                  <td><html:password property="password" size="18"/></td>

              </tr>

              <tr>

                  <td></td>

                  <td>

                     <input type="submit" value="" name="submit" />

                      

                     <input type="reset" value="" name="reset" />

                  </td>

              </tr>

           </table>

       </html:form>

    </body>

</html>

  4.properties:中文与英文

   struts_zh_cn.properties:

   username=\u7528\u6237\u540d:
   password=\u5bc6      \u7801:
   submit=\u767b \u5f55
   cancel=\u53d6 \u6d88
   select=\u8bf7\u9009\u62e9
   cn=\u4e2d\u6587
   en=\u82f1\u6587
   msg=\u60a8\u597d,{0}! \u4eca\u5929\u662f {1}

   struts_us_en.properties:

   username=username:
   password=password:
   submit=submit
   cancel=cancel
   select=select
   cn=Chinese
   en=English
   msg=Hello,{0}! Today is {1}

 5.运行结果

   中文:

   英文

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值