`
hulianwang2014
  • 浏览: 686677 次
文章分类
社区版块
存档分类
最新评论
  • bcworld: 排版成这样,一点看的欲望都没有了
    jfinal

struts2 + ajax + json的结合使用,实例讲解

 
阅读更多

这几天在网上看到好几个朋友发帖问,struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法。

1.准备工作

①ajax使用Jquery:jquery-1.4.2.min.js

②struts2与json的依赖包:struts2-json-plugin-2.2.3.jar

PS:版本可自己控制!~

2.过程

①引入json依赖包

②编写action类

③配置struts.xml

④编写页面

⑤测试

3.实例

①action类,JsonAction注意包名

packagecom.zxt.action;

importcom.opensymphony.xwork2.ActionSupport;

/**
*
*@Title:JsonAction.java
*@Packagecom.zxt.action
*@Description:struts2+ajax+json用例
*@authorzxt
*@date2011-12-6上午10:38:51
*@versionV1.0
*/
publicclassJsonActionextendsActionSupport{

/**
*
*/
privatestaticfinallongserialVersionUID=7443363719737618408L;
/**
*姓名
*/
privateStringname;
/**
*身高
*/
privateStringinch;
/**
*ajax返回结果,也可是其他类型的,这里以String类型为例
*/
privateStringresult;
@Override
publicStringexecute()throwsException{
//TODOAuto-generatedmethodstub
if("张三".equals(name)){
result="身份验证通过,身高为"+inch;
}else
result="不是张三!";
returnSUCCESS;
}

publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetInch(){
returninch;
}
publicvoidsetInch(Stringinch){
this.inch=inch;
}

/**
*
*@Title:getResult
*@Description:json调取结果
*@param@return
*@returnString
*@throws
*/
publicStringgetResult(){
returnresult;
}

}

②struts配置。struts.xml

创建一个新的package,引入json-default

<packagename="ajax"extends="json-default">
<actionname="jsonAjax"class="com.zxt.action.JsonAction">

<!--将返回类型设置为json-->
<resulttype="json"></result>
</action>
</package>

③页面ajax写法,json.jsp

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<basehref="<%=basePath%>">
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
<title>测试</title>
<scripttype="text/javascript"src="include/js/jquery-1.4.2.min.js"></script>
<scripttype="text/javascript">
$(function(){
$("#tj").click(function(){

//提交的参数,name和inch是和strutsaction中对应的接收变量
varparams={
name:$("#xm").val(),
inch:$("#sg").val()
};
$.ajax({
type:"POST",
url:"jsonAjax.action",
data:params,
dataType:"text",//ajax返回值设置为text(json格式也可用它返回,可打印出结果,也可设置成json)
success:function(json){
varobj=$.parseJSON(json);//使用这个方法解析json
varstate_value=obj.result;//result是和action中定义的result变量的get方法对应的
alert(state_value);
},
error:function(json){
alert("json="+json);
returnfalse;
}
});
});
});
</script>
</head>
<body>
<span>姓名:</span><inputid="xm"type="text">
<br/>
<span>身高:</span><inputid="sg"type="text">
<br/>
<inputtype="button"value="提交"id="tj">
</body>
</html>

④启动站点,测试吧!~

按这个走完,一切ok。准备测试吧,看看它的强大效果!~O(∩_∩)O~

这只是最简单的一个例子(前后台交互),他能做的工作是非常多的,尽情发挥你的思想和才能吧!~

goodluck!

PS:

JQuery解析list的时候可参考,下面的小例子

vardata={"list":[{"id":1,"content":"测试信息1111"},{"id":2,"content":"测试信息2222"}]}
$.each(data.list,function(i,item){
alert(item.id);
alert(item.content);
});

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics