设为首页 加入收藏

TOP

EasyUI实现异步加载tree(整合Struts2)(一)
2015-07-20 17:46:41 来源: 作者: 【 】 浏览:11
Tags:EasyUI 实现 异步 加载 tree 整合 Struts2

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

 
 

    ?

    加载Tree

    <script type=text/java script>
    	$('#mytree').tree({   
    	    url:'treeLoad.action'
    	}); 
    

    配置Action
    
      
    	
        
         
         
          treeNodes 
          
         
       
    
      
    注意:

    ?

    1.extends是json-default,表示返回json对象格式。

    2.result中param的name为root,里面设置的值就是action中要返回的JSON对象

    ?

    需要封装对象Tree

    public class TreeNode {
    	private static final long serialVersionUID = 1L;
    	private String id;   // 节点id
    	private String text; // 显示的节点文本
    	private String state = open; // 节点状态,'open'或者'closed',默认是'open'
    	private boolean checked;       // 指明检查节点是否选中.
    
    	public TreeNode() {}
    
    	public TreeNode(String id, String text, String state, boolean checked) {
    		this.id = id;
    		this.text = text;
    		this.state = state;
    		this.checked = checked;
    	}
    
    	//...省略setXX() getXX()
    
    }
    表结构如图
    /

    首先查询所有parentid为空值的数据,然后同时判断该节点下是否有子节点,如果有则状态是关闭状态

    当继续展开树的时候 会将该ID值传入,然后查询该节点的子节点。

    ?

    action方法实现

    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.home.util.ConnectionManager;
    
    /**
     * 查询数据使用JDBC进行操作 
     *
     */
    public class TreeAction {
    	private List
      
        treeNodes = new ArrayList
       
        (); //返回的JSON数据 private String id; // 树组件使用的ID public String treeLoad() { Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = ; if (id == null) { //如果id为null则是根节点 sql = select * from easyui_tree where parentid = ''; } else { //查询下面的子节点 sql = select * from easyui_tree where parentid = + id; } rs = sta.executeQuery(sql); while (rs.next()) { String id = rs.getString(id); String name = rs.getString(name); TreeNode node = new TreeNode(); node.setId(id); node.setText(name); node.setChecked(false); //判断是否有子节点,如果有则closed否则open if(isChildrenNode(id)){ node.setState(closed); }else{ node.setState(open); } treeNodes.add(node); } // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); } return success; } /** * 判断是否有子节点 * * @return */ public boolean isChildrenNode(String id) { Boolean flag = false; Statement sta = null; ResultSet rs = null; try { Connection conn = ConnectionManager.getConnection(); sta = conn.createStatement(); String sql = select * from easyui_tree where parentid = + id; rs = sta.executeQuery(sql); while (rs.next()) { flag = true; } // 关闭所有资源 ConnectionManager.closeAll(rs, sta, conn); } catch (SQLException e) { e.printStackTrace(); } return flag; } public List
        
          getTreeNodes() { return treeNodes; } public void setTreeNodes(List
         
           treeNodes) { this.treeNodes = treeNodes; } public String getId() { return id; } public void setId(String id) { this.id = id; } }
         
        
       
      
    对获取Connection的方法进行了封装
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class ConnectionManager {
    	public static final String DRIVER = com.mysql.jdbc.Driver;
    	public static final String URL = jdbc:mysql://localhost:3306/easyui;
    	public static final String USERNAME = root;
    	public static final String PASSWORD = root;
    
    	/**
    	 * 通过静态代码块 注册数据库驱动
    	 */
    	static {
    		try {
    			Class.forName(DRIVER);
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    
    	/**
    	 * 获得Connection
    	 * 
    	 * @return
    	 */
    	public static Connection getConnection() {
    		Connection conn = null;
    		try {
    			
    首页 上一页 1 2 下一页 尾页 1/2/2
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    分享到: 
    上一篇Leetcode dfs Path Sum 下一篇Responsive design for tables

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容:

    ·C语言中如何将结构体 (2025-12-24 22:20:09)
    ·纯C语言结构体成员变 (2025-12-24 22:20:06)
    ·C语言中,指针函数和 (2025-12-24 22:20:03)
    ·哈希表 - 菜鸟教程 (2025-12-24 20:18:55)
    ·MySQL存储引擎InnoDB (2025-12-24 20:18:53)