struts2.1.8+json+jquery1.3实现ajax

要加的struts包有:

commons-beanutils-1.7.0.jar

commons-chain-1.2.jar

commons-collections-3.2.jar

commons-digester-2.0.jar

commons-fileupload-1.2.1.jar

commons-io-1.3.2.jar

commons-lang-2.3.jar

commons-logging-1.0.4.jar

commons-validator-1.3.1.jar

ezmorph-1.0.3.jar(不这个会去一非常怪错误。不相信你可以试试)我认为应该无法实现java对象与json对象之间转化.

freemarker-2.3.15.jar

json-lib-2.1.jar

ognl-2.7.3.jar

struts2-json-plugin-2.1.8.1.jar

xwork-core-2.1.6.jar

struts2-core-2.1.8.1.jar

web.xml

Xml代码

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

strust.xml

Xml代码

<packagename="ajax"extends="json-default">

<actionname="ajaxLogin"class="org.test.action.AjaxLoginAction">

<!--返回类型为json在json-default中定义-->

<resulttype="json">

<!--root的值对应要返回的值的属性-->

<!--这里的result值即是对应action中的result-->

<paramname="root">result</param>

</result>

</action>

</package>

<packagename="ajax"extends="json-default">

<actionname="ajaxLogin"class="org.test.action.AjaxLoginAction">

<!--返回类型为json在json-default中定义-->

<resulttype="json">

<!--root的值对应要返回的值的属性-->

<!--这里的result值即是对应action中的result-->

<paramname="root">result</param>

</result>

</action>

</package>

action代码:

Java代码

privateStringresult;

//struts的属性驱动模式,自动填充页面的属性到这里

privateStringloginName;

privateStringpassword;

publicStringgetResult(){

returnresult;

}

publicvoidsetResult(Stringresult){

this.result=result;

}

publicStringgetLoginName(){

returnloginName;

}

publicvoidsetLoginName(StringloginName){

this.loginName=loginName;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

@Override

publicStringexecute(){

try{

System.out.println("------------");

//用一个Map做例子

Map<String,String>map=newHashMap<String,String>();

System.out.println(this.loginName);

//为map添加一条数据,记录一下页面传过来loginName

map.put("name",this.loginName);

map.put("password",this.password);

//将要返回的map对象进行json处理

JSONObjectjo=JSONObject.fromObject(map);

System.out.println("*********");

//调用json对象的toString方法转换为字符串然后赋值给result

this.result=jo.toString();

//可以测试一下result

System.out.println(this.result);

}catch(Exceptione){

System.out.println(e);

}

returnSUCCESS;

}

privateStringresult;

//struts的属性驱动模式,自动填充页面的属性到这里

privateStringloginName;

privateStringpassword;

publicStringgetResult(){

returnresult;

}

publicvoidsetResult(Stringresult){

this.result=result;

}

publicStringgetLoginName(){

returnloginName;

}

publicvoidsetLoginName(StringloginName){

this.loginName=loginName;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

@Override

publicStringexecute(){

try{

System.out.println("------------");

//用一个Map做例子

Map<String,String>map=newHashMap<String,String>();

System.out.println(this.loginName);

//为map添加一条数据,记录一下页面传过来loginName

map.put("name",this.loginName);

map.put("password",this.password);

//将要返回的map对象进行json处理

JSONObjectjo=JSONObject.fromObject(map);

System.out.println("*********");

//调用json对象的toString方法转换为字符串然后赋值给result

this.result=jo.toString();

//可以测试一下result

System.out.println(this.result);

}catch(Exceptione){

System.out.println(e);

}

returnSUCCESS;

}

index.jsp

Html代码

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

<%@taglibprefix="s"uri="/struts-tags"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=UTF-8">

<scripttype="text/javascript"src="js/jquery-1.3.2.min.js"></script><scripttype="text/javascript">

$(document).ready(function(){

//使用Ajax的方式判断登录

$("#btn_login").click(function(){

varurl='ajaxLogin.action';

//获取表单值,并以json的数据形式保存到params中

varparams={

loginName:$("#loginName").val(),

password:$("#password").val()

//上行结尾决对不加逗号(,)。如果加了在IE6下就不能运行实现了。

}

alert(params.loginName);

//使用$.post方式

$.post(

url,//服务器要接受的url

params,//传递的参数

functioncbf(data){//服务器返回后执行的函数参数data保存的就是服务器发送到客户端的数据

//alert(data);

varmember=eval("("+data+")");//包数据解析为json格式

$('#result').html("欢迎您:"+member.name+"<br>您的密码是:"+member.password);

},

'json'//数据传递的类型json

);

});

});

</script>

</head>

<body>

<center>

<table>

<tr>

<td>

<span>用户名:</span>

</td>

<td>

<inputtype="text"id="loginName"name="loginName">

</td>

</tr>

<tr>

<td>

<span>密码:</span>

</td>

<td>

<inputtype="password"name="password"id="password">

</td>

</tr>

<tr>

<tdcolspan="2">

<inputtype="button"id="btn_login"value="Login"/>

</td>

</tr>

</table>

<p>

这里显示ajax信息:

<br/>

<spanid="result"></span>

</p>

</center>

</body>

</html>

相关推荐