<! 前台jsp页面>
<body>
<ul id="tree">
</ul>
</body>
|----------------------分割线-------------------------------
js 代码
function(){
$("#tree").tree({
url:Tree.action,
loafFilter:function(rows){
return convert(rows);
}
});
}
function convert(rows){
function exists(rows,parentId){
for ( var i=0;i<rows.length;i++){
if(rows[i].id== parentId) return true;
}
return false;
}
var nodes=[];
for(var i=0;i<rows.length;i++){
var row= rows[1];
if(!exists(rows,row.parentId)){
nodes.push({
id:row.id.
text:row.name
});
}
}
var toDo = [];
for(var i=0; i<nodes.length; i++){
toDo.push(nodes[i]);
}
while(toDo.length){
var node = toDo.shift();// the parent node
// get the children nodes
for(var i=0; i<rows.length; i++){
var row = rows[i];
if (row.parentId == node.id){
var child = {id:row.id,text:row.name};
if (node.children){
node.children.push(child);
} else {
node.children = [child];
}
toDo.push(child);
}
}
}
return nodes;
}
----------------------------------------struts.xml-------------------------------------------
<action name="Tree" class=" test.Tree" method="getList">
<result type="json">
<param name="root">responseJson</param>
</result>
</action>
---------------------------后台代码----------------------------------------------------------
======action==========
package test;
import java.util.*;
import net.sf.json.JSONArray;
import com.opensymphony.xwork2.Action;
import dao.TreeSearch;
public class Tree {
public JSONArray responseJson;
public JSONArray getResponseJson() {
return responseJson;
}
public void setResponseJson(JSONArray responseJson) {
this.responseJson = responseJson;
}
private TreeSearch ts;
public String getList(){
ts= new TreeSearch();
//Map map= new HashMap();
JSONArray jsonArray = new JSONArray();
jsonArray=ts.map();
//JSONObject jsonObject = JSONObject.fromObject(map);
this.setResponseJson(jsonArray);
return Action.SUCCESS;
}
}
++++++++++++++TreeSearch++++++++++++++
package dao;
import java.sql.ResultSet;
import java.util.*;
import net.sf.json.JSONArray;
import tools.rschangelist;
import database.connection;
public class TreeSearch {
private connection con= null;
private rschangelist rl= null;
public TreeSearch(){
con= new connection();
rl = new rschangelist();
}
public JSONArray map(){
Map map = new HashMap();
JSONArray jsonArray = new JSONArray();
List list= new ArrayList();
String sql= "select *from tree";
try {
ResultSet rs= con.executequery(sql);
list= rl.converList(rs);
jsonArray = JSONArray.fromObject(list);
System.out.println(jsonArray);
map.put("rows", list);
} catch (Exception e) {
e.printStackTrace();
}
return jsonArray;
}
}
--------------------------------Result转换成List------------------------------------
package tools;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.*;
public class rschangelist {
public List converList(ResultSet rs) throws SQLException{
List list = new ArrayList();
ResultSetMetaData md =rs.getMetaData();
int columCount= md.getColumnCount();//Map rowdata
while (rs.next()) { //rowData = new HashMap(columnCount);
Map rowData = new HashMap();
for (int i = 1; i <= columCount; i++) {
rowData.put(md.getColumnName(i), rs.getObject(i));
}
list.add(rowData);
}
return list;
}
}
========================j结果