JQuery+JSON+Struts返回一个List到页面
2011-09-24 21:38
417 查看
最近有人问我,怎么用JQuery+JSON+Struts实现,返回一个List到页面,前面我已经讲过了 一个简单的登陆的例子,那是返回一个字符串,
这个例子有些不同,因为你要返回的是一个列表,而列表中都是实体:在这个实例中点击公司名称,返回子公司列表,从Action中返回List
这就需要用到JSONArray 把原来的List 转化为JSONArray格式,我看到网上有相应的文章,但是相对麻烦,还有很多人自己写代码,实现普通的实体转化为JSon对象,
这样的人很厉害,但是有现成的为什么还自己动手呢,直接用JSON包中的不就行了嘛
准备:在你为整个项目添加了Struts之后(例子中是Struts2.1)
还要下载一个json-lib-2.4-jdk15.jar(我下载的是这个版本),添加到项目中
同时还要下载一个ezmorth-1.0.1.jar(我用的这个版本比较低,可以下载新的),否则就会出现 class net.sf.json.XXXX can't fount这样的错误,就是一个类找不到,把
这个包加入就没有问题了。
准备结束了,直接看代码就行了:
首先看show.jsp
<script type="text/javascript" src="<%=basePath%>/js/jquery-1.3.1.js">
</script>
<script type="text/javascript">
function GetTree(num)
{
var param={comNum:num};
$.ajax({ //采用Ajax方法
type:"post", //post方式
dataType:"json", //返回数据类型是JSON数据格式
data:param, //传递给Action的参数是param
url:"ReturnTree", //处理的Action名称
success:function(data){ //成功的处理函数
$.each(data,function(commentIndex, comment) { //遍历返回数组的每一个实体
alert(comment.sshortName); //输出实体的sshortName属性的值
})
},"json");
}
</script>
</head>
<body>
<body id="bodyTree">
<div id="cmsTree">
<ul id="treemenu3" class="treeview">
<li>
<strong>组织架构</strong>
<a href="javascript:ddtreemenu.flatten('treemenu3', 'expand')"><strong>展开</strong>
</a>
<a href="javascript:ddtreemenu.flatten('treemenu3', 'contact')"><strong>收缩</strong>
</a>
</li>
<li>
//在这里调用JS函数参数是公司的ID
<i></i><span onclick="GetTree('<%=company.getCompanyNum()%>')"><%=company.getCompanynameC()%></span>
<ul>
<li>
<a href="#">彰化</a>
</li>
Action的代码:
public class DLCompanyAction {
private String comNum;//接受页面传递过来的公司ID参数
public String getComNum() {
return comNum;
}
public void setComNum(String comNum) {
this.comNum = comNum;
}
private JSONArray resultTree;//我要返回给页面的List
public JSONArray getResultTree() {
return resultTree;
}
public void setResultTree(JSONArray resultTree) {
this.resultTree = resultTree;
}
public String GetDLCTree()
{
dlc=new DLcompanyserviceImp();//dlc 是我项目中的一个service实现类,里面有一个方法就是下面的ReturnSubcompanyById,方法是根据给定的公司,返回公司的子公 司 列表
List<Subcompany> list=dlc.ReturnSbuCommpanyById(comNum);
JSONArray jsarry=new JSONArray();
jsarry=JSONArray.fromObject(list); //或者JSONArray jsarry=JSONArray.fromObject(list)
resultTree=jsarry;
return "success";
}
}
最后是Struts.xml的配置
<package name="TreeDL" extends="json-default">
<action name="ReturnTree" class="com.wit.action.DLCompanyAction" method="GetDLCTree">
<result type="json">
<param name="root">resultTree</param>//resultTree是Action中的返回变量
</result>
</action>
</package>
一切OK,希望对你有帮助哦,不明白再问我吧,欢迎骚扰
这个例子有些不同,因为你要返回的是一个列表,而列表中都是实体:在这个实例中点击公司名称,返回子公司列表,从Action中返回List
这就需要用到JSONArray 把原来的List 转化为JSONArray格式,我看到网上有相应的文章,但是相对麻烦,还有很多人自己写代码,实现普通的实体转化为JSon对象,
这样的人很厉害,但是有现成的为什么还自己动手呢,直接用JSON包中的不就行了嘛
准备:在你为整个项目添加了Struts之后(例子中是Struts2.1)
还要下载一个json-lib-2.4-jdk15.jar(我下载的是这个版本),添加到项目中
同时还要下载一个ezmorth-1.0.1.jar(我用的这个版本比较低,可以下载新的),否则就会出现 class net.sf.json.XXXX can't fount这样的错误,就是一个类找不到,把
这个包加入就没有问题了。
准备结束了,直接看代码就行了:
首先看show.jsp
<script type="text/javascript" src="<%=basePath%>/js/jquery-1.3.1.js">
</script>
<script type="text/javascript">
function GetTree(num)
{
var param={comNum:num};
$.ajax({ //采用Ajax方法
type:"post", //post方式
dataType:"json", //返回数据类型是JSON数据格式
data:param, //传递给Action的参数是param
url:"ReturnTree", //处理的Action名称
success:function(data){ //成功的处理函数
$.each(data,function(commentIndex, comment) { //遍历返回数组的每一个实体
alert(comment.sshortName); //输出实体的sshortName属性的值
})
},"json");
}
</script>
</head>
<body>
<body id="bodyTree">
<div id="cmsTree">
<ul id="treemenu3" class="treeview">
<li>
<strong>组织架构</strong>
<a href="javascript:ddtreemenu.flatten('treemenu3', 'expand')"><strong>展开</strong>
</a>
<a href="javascript:ddtreemenu.flatten('treemenu3', 'contact')"><strong>收缩</strong>
</a>
</li>
<li>
//在这里调用JS函数参数是公司的ID
<i></i><span onclick="GetTree('<%=company.getCompanyNum()%>')"><%=company.getCompanynameC()%></span>
<ul>
<li>
<a href="#">彰化</a>
</li>
Action的代码:
public class DLCompanyAction {
private String comNum;//接受页面传递过来的公司ID参数
public String getComNum() {
return comNum;
}
public void setComNum(String comNum) {
this.comNum = comNum;
}
private JSONArray resultTree;//我要返回给页面的List
public JSONArray getResultTree() {
return resultTree;
}
public void setResultTree(JSONArray resultTree) {
this.resultTree = resultTree;
}
public String GetDLCTree()
{
dlc=new DLcompanyserviceImp();//dlc 是我项目中的一个service实现类,里面有一个方法就是下面的ReturnSubcompanyById,方法是根据给定的公司,返回公司的子公 司 列表
List<Subcompany> list=dlc.ReturnSbuCommpanyById(comNum);
JSONArray jsarry=new JSONArray();
jsarry=JSONArray.fromObject(list); //或者JSONArray jsarry=JSONArray.fromObject(list)
resultTree=jsarry;
return "success";
}
}
最后是Struts.xml的配置
<package name="TreeDL" extends="json-default">
<action name="ReturnTree" class="com.wit.action.DLCompanyAction" method="GetDLCTree">
<result type="json">
<param name="root">resultTree</param>//resultTree是Action中的返回变量
</result>
</action>
</package>
一切OK,希望对你有帮助哦,不明白再问我吧,欢迎骚扰
相关文章推荐
- JQuery+JSON+Struts返回一个List到页面
- (转)JQuery+JSON+Struts返回一个List到页面 (二)
- struts2+hibernate+spring+jquery返回json List列表
- 将一个List转成json对象返回到前台页面
- struts2+json返回一个list
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 jsp页面
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 serlet配置页面
- 在Action中查询出SQL SERVER表的数据,返回一个list。怎么在JSP页面中使用Struts标签,显示出表中的内容?(转)
- java 返回json list及jquery 解析
- SSH JQuery Json ajax请求返回List对象集合
- jsp通过jQuery返回json数据到页面
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- 通过Ajax请求后台数据,返回JSONArray(JsonObject),页面(Jquery)以table的形式展示
- jquery里面调用getjson方法,将list类型转换为json格式数据,在页面迭代显示
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
- 工作总结 返回 json 后台对象中,某一个字段设为string 整个对象转换为json 返回到页面中
- Hibernate执行自定义sql 返回一个list展示在页面
- 使用JQuery.js & JQuery.form.js 插件完成对StrutsAction的异步请求,返回JSON数据
- ashx页面返回json字符串|jQuery 的ajax处理请求的纠结问题
- struts2返回JSON,jquery解析JSON(返回的可能是LIST,MAP,对象,单个值)