ztree增删修改---删除节点

z-Tree jsp 页面如下

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>










Insert title here




jsp/servelt 目录树的添加、删除和修改(请不要删除根节点)

     

     

     

     

     

     

    注意:  setting 部分冒号前面的字段请不要更改,必须与官网一致!!!!切记!这就好比编程语言中的关键字!

     

    1.以上运用了jsp 标签获取上下文路径,为了资源的相对路径而设。

    2.注意js 文件 和 css  文件的 引入

    3. 注意 setting 的参数设置,详情请去官网查看。

    CityDAO代码:

     

    package util;
    
    import java.util.List;
    
    public interface CityDAO {
    	public List findTypeChildrenById(Integer id);// 查询孩子节点
    	public void deleteCity(Integer id);          //删除节点
    }

    CityImpl代码:

     

     

    package util;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    public class CityImpl  implements CityDAO{
    
    	@Override
    	public List findTypeChildrenById(Integer id) {
    		java.sql.Connection conn = null;
    		java.sql.PreparedStatement ps = null;
    		ResultSet rs = null;
    		List list =new ArrayList();
    		try{
    			conn = DbUtil.getConnection();
    			String sql = "select * from essayType  where parent_id = ?";
    			ps = conn.prepareStatement(sql);
    			ps.setInt(1, id);
    			rs = ps.executeQuery();
    			while(rs.next())
    			{
    				City e = new City();
    				e.setId(rs.getInt("id"));
    				e.setpId(rs.getInt("parent_id"));
    				e.setCity(rs.getString("province"));
    				list.add(e);
    			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}finally{
    			DbUtil.closeAll(conn, ps, rs);
    		}
    		return list;
    	}
    
    	@Override
    	public void deleteCity(Integer id) {
    		Connection conn = null;
    		PreparedStatement ps = null;
    		try{   
    				conn = DbUtil.getConnection();
    				String sql = "delete from essaytype where id = ?";
    				ps = conn.prepareStatement(sql);
    				ps.setInt(1, id);
    				ps.execute();	
    			}catch(Exception e){
    				e.printStackTrace();
    			}finally{
    				DbUtil.closeAll(conn, ps);
    			}
    	}
    }

     

     

     

     

     

    CityImpl的  findTypeChildrenById(id) 是为了查询孩子节点并返回list

    CityNodeServlet 返回 json格式的一组节点,如下:

     

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		Integer id = request.getParameter("id")==null? 0 : Integer.parseInt(request.getParameter("id"));
    		List e = c.findTypeChildrenById(id);
    		JSONArray jsonArray = new JSONArray();
    		for(City temp : e){
    			TreeNode treeNode = new TreeNode();
    			JSONObject jO = new JSONObject();
    			treeNode.setId(temp.getId());
    			jO.put("id", treeNode.getId());
    			treeNode.setpId(temp.getpId());
    			jO.put("pId", treeNode.getpId());
    			treeNode.setNodeName(temp.getCity());
    			jO.put("nodeName", treeNode.getNodeName());
    			jO.put("open", treeNode.getOpen());    // 默认不展开
    			jO.put("checked", false);
    			List cities = c.findTypeChildrenById(temp.getId());
    			if(cities.size() ==0)
    				treeNode.setIsParent(false);
    			jO.put("isParent", treeNode.getIsParent());
    			jsonArray.add(jO);
    		}
    		response.setContentType("application/json;charset=utf-8");
    		response.getWriter().println(jsonArray.toString());
    	}

     

    其中treeNode 的定义见前期准备篇

     

    必须返回节点的isParent属性,判断是否为双亲节点,因为这个属性影响前段的样式显示,可以自行尝试。

    基本就这样,你可以结合前期准备试一下,如果哪里不会或者遇到什么错误,可以留言告知。

    代码地址

    https://github.com/SpecialYy/ztree-demo-practice

     

    你可能感兴趣的:(Java,Web)