Struts1实现登陆国际化
来源:互联网 发布:口口网络用语什么意思 编辑:程序博客网 时间:2024/06/06 01:38
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 LoginActionextends 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;
varlanguage = document.getElementsByName("language")[0].value;
if(window.XMLHttpRequest)
{
request =newXMLHttpRequest();
}
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);
returnrequest;
}
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
<%@ pagelanguage="java"pageEncoding="UTF-8"%>
<%@ tagliburi="http://jakarta.apache.org/struts/tags-bean"prefix="bean"%>
<%@ tagliburi="http://jakarta.apache.org/struts/tags-html"prefix="html"%>
<%@ tagliburi="http://java.sun.com/jsp/jstl/core"prefix= "c"%>
<!-- 嵌套js -->
<scripttype="text/javascript"src="js/ajax.js"></script>
<html>
<head>
<title>ajax+struts1.2国际化</title>
</head>
<body>
<html:formaction="login.do?method=login"method="post">
<table>
<tr>
<tdwidth="60"></td>
<td>
<select name="language"tabindex="30">
<optionvalue="cn"id="cn">中文</option>
<optionvalue="en"id="en">英文</option>
</select>
<html:buttonproperty="select"onclick="createXMLHttpRequest(this)"> </html:button>
</td>
</tr>
<tr>
<td><spanid="username">用户名:</span></td>
<td><html:textproperty="username"size="16"/></td>
</tr>
<tr>
<td><spanid="password">密 码:</span></td>
<td><html:passwordproperty="password"size="18"/></td>
</tr>
<tr>
<td></td>
<td>
<inputtype="submit"value="登录"name="submit"/>
<inputtype="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.运行结果
中文:
英文
- Struts1实现登陆国际化
- struts1 登陆验证码实现
- struts1国际化
- Struts1.2+Jquery+Hibernate+Mysql实现登陆
- struts1登陆
- 登陆界面国际化通过插件实现
- struts2,struts1,jsp实现国际化的方法示例
- Struts1.x 国际化
- Struts1国际化小结
- struts1.3的国际化
- velocity+struts1国际化
- struts1的国际化原理
- struts1.2国际化
- struts1.x的国际化
- Struts1.2国际化实例
- Struts1之国际化(一)
- Struts1国际化小结
- STRUTS1.X的国际化
- XX录入项目总结1--录入项目简介
- 如何将2008数据库转为2000或2005的数据库
- 为什么C语言屹立不倒?
- AS3:时间戳的转换 http://blog.csdn.net/a7719665/article/details/5912004#
- 手机的出厂密码
- Struts1实现登陆国际化
- 资源DLL与多语言
- 什么是SIP协议
- rails 程序是如何加载的
- 聚类(序)——监督学习与无监督学习
- 创建struts1.2日期转换器
- 黑马程序员--枚举,增强for循环,可变参数,静态导入,自动拆箱和自动装箱
- Flash AS3 性能优化注意点
- Web Application server development 技术总结