读书人

easyui struts后台老板实现tree返回js

发布时间: 2013-10-30 12:56:21 作者: rapoo

easyui struts后台实现tree返回json数据

首先jsp页面有一ul用于展现tree

<ul id="trueULid"></ul>

加载tree

<script type="text/javascript">$(function() {   $('#trueULid').tree( { url : 'admin/HhTestTree.do'   });});</script>

配置action
<action name="HhTestTree" method="testTree"class="org.bkgd.ehome.jeeplugin.message.web.action.ActionHhMessageTypeQuery"><result type="json"><param name="root">testTreeNodes</param></result></action>

需要封装对象tree
public class TestTreeNode implements Serializable {/** *  */private static final long serialVersionUID = 1L;private String id;private String text;private String state = "open";private boolean checked;public TestTreeNode(String id, String text, String state, boolean checked) {this.id = id;this.text = text;this.state = state;this.checked = checked;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getText() {return text;}public boolean isChecked() {return checked;}public void setChecked(boolean checked) {this.checked = checked;}public void setText(String text) {this.text = text;}public String getState() {return state;}public void setState(String state) {this.state = state;}}

表结构如图

easyui struts后台老板实现tree返回json数据

首先查询所有parentid为NONE的数据(测试数组件的ID为null)然后同时判断该节点下是否有子节点,
如果有则状态是关闭状态
当继续展开树的时候 会将该ID值传入,然后查询该节点的子节点。


action方法实现

private List<TestTreeNode> testTreeNodes = new ArrayList<TestTreeNode>();private String id;// 树组件使用的IDpublic String testTree() {try {List<Map<String,Object>> list = aloneIMP.getTreeNodes(id).search().getResultList();for(Map<String,Object> m:list){//判断是否有子节点List<Map<String,Object>> isHasChildren = aloneIMP.getTreeChildren(null).addUserWhere(" and parentid ='"+(String)m.get("ID")+"'").search().getResultList();if(isHasChildren.size()==0){testTreeNodes.add(new TestTreeNode((String)m.get("ID"),(String)m.get("NAME"),"open",false));}else{testTreeNodes.add(new TestTreeNode((String)m.get("ID"),(String)m.get("NAME"),"closed",false));}}} catch (SQLException e) {e.printStackTrace();}return SUCCESS;}

此方法不具公共性,是自己的一些封装实现。主要是如何进行查询节点,

getTreeNodes()的实现方法为:

@Overridepublic DataQuery getTreeNodes(String id) {if(id==null){dbQuery = DataQuery.init(query,"hh_message_type","ID,STATE,PARENTID,NAME,TITLE").addUserWhere(" and parentid = 'NONE'");}else{dbQuery = DataQuery.init(query,"hh_message_type","ID,STATE,PARENTID,NAME,TITLE").addUserWhere(" and parentid = '"+id+"'");}return dbQuery;}

getTreeChildren()的实现方法为:

@Overridepublic DataQuery getTreeChildren(DataQuery query) {DataQuery dbQuery = DataQuery.init(query,"hh_message_type","ID,STATE,PARENTID,NAME,TITLE");return dbQuery;}

实现效果图为:

easyui struts后台老板实现tree返回json数据

读书人网 >JavaScript

热点推荐