最近有人问我,怎么用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>
分享到:
相关推荐
本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. **引入Struts2的JSON插件** 描述中提到的第一步是将Struts2的JSON插件加入到Web项目的lib目录下。这一步非常...
Action类可能包含一个方法,该方法返回一个封装了数据的Java对象,并且需要在Struts2的配置文件中声明这个方法应该返回JSON类型的结果。 接着,我们需要配置Struts2的JSON插件,以支持JSON输出。这通常涉及在struts...
Struts2、jQuery、JSON和List是Web开发中常见的技术栈,它们在构建动态、交互式的Web应用程序中扮演着重要角色。这篇博文可能是探讨如何在Struts2框架中结合jQuery和JSON来处理List类型的数据。 Struts2是一个流行...
在Struts2中,Action类可以有一个List类型的属性,每个元素都是一个对象。JQuery通过Ajax请求获取到这个JSON数组后,可以遍历并处理每个对象。 5. **获取Map对象**:JSON对象本质上就是一个键值对的集合,与Java中...
该方法接收四个参数:`mobileNum`(手机号码)、`gatewayid`(网关ID)、`startDate`(开始日期)与`endDate`(结束日期),返回一个包含黑名单信息的`List<LBlack>`对象。 ```java List<LBlack> blackList = ...
例如,如果你的JSON响应包含一个名为`list`的数组,你可以遍历并显示它们: ```javascript success: function(response) { var listItems = ''; $.each(response.list, function(index, item) { listItems += '...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它的主要职责是处理用户请求,控制应用程序流程,并将数据传递到视图层。在“三级联动”场景下,Struts2可能是用来接收前端的Ajax请求,调用...
总的来说,"Struts2+json+ajax整合例子"是一个实用的教学资源,帮助开发者了解如何在实际项目中利用这些技术进行高效的Web开发。通过学习和实践这个例子,开发者可以提升其在Web应用程序开发中的技能。
Struts2提供了一个插件,叫做Struts2-JSON-plugin,它允许Action类直接返回JSON响应。在Action类中,你可以定义一个结果类型为"json"的返回值,然后将你需要转换为JSON的对象放入value栈,Struts2会自动处理这个对象...
3. 确保服务器端的Action方法返回一个能够被转换成JSON的类型,例如`List<ErrorCondition>`或`Map, ErrorCondition>`。 总结来说,这个实例演示了如何利用Ajax、JSON和Struts2框架在客户端与服务器之间传递和展示...
然后,创建一个Action类,声明一个List类型的属性,用来接收前端发送的JSON数组: ```java public class UserAction extends ActionSupport { private List<User> users; // getters and setters public ...
Struts2是一个强大的MVC(模型-视图-控制...在"struts2+json+jquery"的页面整合中,首先,我们需要在Struts2的配置文件(struts.xml)中定义Action,这个Action将负责处理客户端的请求并返回JSON数据。例如: ```xml ...
JSON插件是Struts2的一个扩展插件,它提供了JSON结果类型(Result Type),使得开发者可以在Action中直接返回JSON格式的数据,而无需显式地编写视图层代码来渲染这些数据。这对于实现基于Ajax的交互非常有用。 ####...
Struts2JQueryJson是一个基于Struts2框架的项目,主要展示了如何在前端使用JQuery库来处理由后台返回的JSON格式数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也方便...
在本教程中,我们将探讨如何结合使用Struts2和jQuery来实现一个使用Ajax发送请求并接收JSON类型数据的功能。 首先,我们需要在JSP页面中使用jQuery发起Ajax请求。jQuery的`$.ajax()`函数是实现这一功能的核心。例如...
Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,主要用于构建企业级的Web应用程序。JSON(JavaScript Object Notation)则是一种轻量级的数据交换格式,它允许数据以键值对...
在Struts2中,可以使用`struts.json.package`或`struts.json.action`注解来标记一个Action为JSON响应。例如: ```java @ParentPackage("json-default") public class MyAction extends ActionSupport { private ...
通常,这个属性会是一个Map、List或者其他可以转化为JSON的对象。 4. **JSON插件的设置**: 可能需要配置JSON插件,例如排除某些不必要的字段,或者指定日期格式等。这可以通过在配置文件中添加以下内容来完成: ``...