最近在用jQuery就在网上找了个树js来用,发现easyui所以就配置一下使用,下载了论坛上的一个离线doc文档谁知道那个文档的属性不全,easyui属性只写了两个(url和animate),那就用吧,可是问题来了,struts2返回的json数据格式是key:value型的怎么转啊,找了半天,后来在一个问题贴上看到有一个data属性晕,上官方网站看了下.
Name
Type
Description
Default
url |
string |
a URL to retrive remote data. |
null |
animate |
boolean |
Defines if to show animation effect when node expand or collapse. |
false |
checkbox |
boolean |
Defines if to show the checkbox before every node. |
false |
cascadeCheck |
boolea |
Defines if to cascade check. |
true |
onlyLeafCheck |
boolean |
Defines if to show the checkbox only before leaf node. |
false |
data |
array |
The node data to be loaded. |
null |
里面有一个data属性就是需要传入的node data.
后台类
package com.eversun.delivery.web.action.site;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.eversun.delivery.database.ISiteManager;
import com.opensymphony.xwork2.ActionSupport;
@Controller
@Scope("prototype")
public class FindSiteTreeAction extends ActionSupport implements
ServletResponseAware {
@Resource
private ISiteManager siteManager;
private HttpServletResponse response;
//字符串返回
private String treeJsonStr;
//开始我使用的ArrayList传递过去可是怎么也出不来数据改成string了.
//后来用这个试验也可以
private JSONArray jsonList ;
@JSON(serialize = false)
public String getTreeList() {
//这句话不用理会就是返回一个jsonarray就行
JSONArray jsonArray = (JSONArray)siteManager.getTreeJsonData(siteManager
.getProvinceAndSiteRoot());
this.setJsonList(jsonArray);
this.setTreeJsonStr(jsonArray.toString());
return SUCCESS;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
public String getTreeJsonStr() {
return treeJsonStr;
}
public void setTreeJsonStr(String treeJsonStr) {
this.treeJsonStr = treeJsonStr;
}
public JSONArray getJsonList() {
return jsonList;
}
public void setJsonList(JSONArray jsonList) {
this.jsonList = jsonList;
}
}
前台代码
<%@page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<style>
.layoutstyle{
height:100%;
width:100%;
display:block;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>网点管理</title>
<link rel="stylesheet" type="text/css" href="../../css/easyui.css">
<script type="text/javascript" src="../../js/common/jquery.js"></script>
<script type="text/javascript" src="../../js/easyui/jquery.easyui.min.js"></script>
<script type="text/javascript">
jQuery(function(){
$.getJSON("getSiteTreeAction.action", function(json){
//alert(json.jsonList.length);
//string 的需要这样转一下由于data的数据类型是array的.
var strjson = eval('('+json.treeJsonStr+')');
//alert(strjson.jsonList.length);
$('#typetree').tree({
checkbox: false,
//这里需要注意一下data一共可以传两种方式的数据第一种被我注释掉了
//data:json.jsonList,
data:strjson,
onClick:function(node){
$(this).tree('toggle', node.target);
alert('you dbclick '+node.attributes.type);
}
});
});
});
function reload(){
$('#typetree').tree('reload');
}
</script>
</head>
<body >
<div class="easyui-layout layoutstyle" >
<div region="east" split="true" title="网点类别" style="width:150px;">
<ul id="typetree">
</ul>
</div>
<div id="content" region="center" title="网点列表" style="padding:5px;"> </div>
</div>
</body>
</html>
分享到:
相关推荐
总结起来,整合EasyUI Tree和Struts2的关键在于理解Tree的异步加载机制,以及在Struts2 Action中正确返回JSON数据。通过这种方式,我们可以构建出高性能、交互友好的树形数据展示界面。在实际项目中,可以结合数据库...
通过配置Struts2的Action,配合JSON结果类型,可以方便地返回JSON数据供EasyUI组件消费。同时,Struts2的拦截器和验证机制也能确保数据安全和业务逻辑的正确性。 总结来说,"easyUI文件"中包含的tree、layout和tabs...
1. **Ajax通信**:jQueryEasyUI的组件可以利用jQuery的Ajax功能与Java后端进行数据交互,如发送请求到Spring MVC或Struts2的Action,获取JSON数据并更新界面。 2. **Servlet或Controller处理**:在Java后端,可以...
通过上述分析,我们可以看出这段代码展示了如何使用Java后端技术结合`Gson`库构建一个JSON格式的多级菜单数据,并通过`Struts2`框架将这些数据返回给前端。前端则可以使用`jQuery-EasyUI`中的树形菜单组件来渲染这些...
- **JSON 格式数据**:通常后端返回的数据以 JSON 格式传递,EasyUI 可以直接解析并展示。 6. **08-easyUI 文件夹可能包含的内容** - `jsp` 文件:包含 EasyUI 组件的示例页面,展示了如何在 JSP 中使用 EasyUI。...
6. **与后端框架集成**:EasyUI 通常与Java后端框架(如Spring MVC、Struts2等)或者PHP、ASP.NET等其他语言的后端框架配合使用,实现数据的动态加载和异步交互。 7. **Ajax与JSON**:EasyUI 利用jQuery的Ajax功能...
sshe示例程序(struts2+spring3+hibernate4+easyui)(Maven构建) easyui1.2.6整站文件.zip jquery1.7.2中文API修正版.chm jquery.easyui-1.2.5源码未压缩版.rar jquery-easyui-1.2.6.zip JQuery-esqyUI中文-1.2.5API....
在服务器端,我们需要创建一个处理请求的Action,如Java中的Struts2 Action,这个Action会拼接JSON数据并返回给前端。在提供的代码中,我们看到一个名为`LoadWfNodesAction`的类,它从请求中获取`wfId`参数,然后...
文章还提到了在后台处理数据的部分,使用了Struts2框架的配置文件,定义了一个action来处理请求: ```xml *" class="com.chinasoft.action.DepartmentAction" method="{1}"> <result name="getAllDep" type="json...
综上所述,本文档详细介绍了如何使用EasyUI框架创建多级树形结构,并提供了实现的具体步骤和代码示例,以及在Struts2框架下如何配置和请求树形数据的相关信息。这对于理解和实现基于框架的树形结构非常有帮助。
J2EE服务端开发涉及的库包括apache-commons提供基础类扩展,json-lib处理JSON数据,junit进行单元测试,struts2/spring mvc作为MVC框架,ibatis/mybatis/hibernate作为ORM层选择。 **选型** 3.1 **中间件**:商业...
- **J2EE基础类库**:如Apache Commons、JSON-Lib用于JSON处理,JUnit进行单元测试,Struts2或Spring MVC作为MVC框架,Spring处理业务逻辑,ORM层可以选择ibatis、mybatis或hibernate。 - **中间件**:商业中间件...