栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

easyUI03(tree后台工作)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

easyUI03(tree后台工作)

上次我们是从JSON中拿到的数据,今天从数据库拿

tree属性

每个节点都具备以下属性:

  • id:节点ID,对加载远程数据很重要。

  • text:显示节点文本。

  • state:节点状态,'open' 或 'closed',默认:'open'。如果为'closed'的时候,将不自动展开该节点。

  • checked:表示该节点是否被选中。

  • attributes: 被添加到节点的自定义属性。

  • children: 一个节点数组声明了若干节点。

使用MVC实现

根据以上属性,实体类的属性就可以确定了

在数据库中建一个 tb_module  功能模块表

实体类:
package com.zking.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


public class Module implements Serializable{

	
	private static final long serialVersionUID = 1L;
	
	private int id;
	private int pid;
	private String text;
	private String iconCls;
	private String url;
	private int sort;
	
	private List children=new ArrayList();

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public int getPid() {
		return pid;
	}

	public void setPid(int pid) {
		this.pid = pid;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	public String getIconCls() {
		return iconCls;
	}

	public void setIconCls(String iconCls) {
		this.iconCls = iconCls;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public int getSort() {
		return sort;
	}

	public void setSort(int sort) {
		this.sort = sort;
	}

	public List getChildren() {
		return children;
	}

	public void setChildren(List children) {
		this.children = children;
	}
	
	public Module() {
		// TODO Auto-generated constructor stub
	}

	public Module(int id, int pid, String text, String iconCls, String url, int sort, List children) {
		this.id = id;
		this.pid = pid;
		this.text = text;
		this.iconCls = iconCls;
		this.url = url;
		this.sort = sort;
		this.children = children;
	}
	
	public Module(int pid, String text, String iconCls, String url, int sort, List children) {
		this.pid = pid;
		this.text = text;
		this.iconCls = iconCls;
		this.url = url;
		this.sort = sort;
		this.children = children;
	}

	@Override
	public String toString() {
		return "module [id=" + id + ", pid=" + pid + ", text=" + text + ", iconCls=" + iconCls + ", url=" + url
				+ ", sort=" + sort + ", children=" + children + "]";
	}
	
	
	
}
在数据库访问层中写一个方法

接口:

   
    public List getAllByPid(int pid);

实现类:

package com.zking.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zking.entity.Module;
import com.zking.util.DBHelper;


public class ModuleDao implements IModuleDao{

	@Override
	public List getAllByPid(int pid) {
		List lm=new ArrayList();
		Connection con=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try {
			//获得连接
			con=DBHelper.getCon();
			//定义sql语句
			String sql="select * from tb_module where pid=? order by sort";
			//获得执行对象
			ps=con.prepareStatement(sql);
			//给占位符赋值
			ps.setInt(1, pid);
			//获得结果集
			rs=ps.executeQuery();
			//遍历结果集
			while(rs.next()) {
				//实例化module对象
				Module m=new Module();
				m.setId(rs.getInt(1));
				m.setPid(rs.getInt(2));
				m.setText(rs.getString(3));
				m.setIconCls(rs.getString(4));
				m.setUrl(rs.getString(5));
				m.setSort(rs.getInt(6));
				//加到集合
				lm.add(m);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			DBHelper.myClose(con, ps, rs);
		}
		return lm;
	}
	

}
  在业务逻辑层封装children 
package com.zking.biz;

import java.util.List;

import com.zking.dao.IModuleDao;
import com.zking.dao.ModuleDao;
import com.zking.entity.Module;

public class ModuleBiz implements IModuleBiz{

	//调用数据库访问层
	IModuleDao imd=new ModuleDao();
	
	
	@Override
	public List getAllByPid(int pid) {//-1 20
		List ls = imd.getAllByPid(pid);
		for (Module m : ls) {
			if(m.getPid()==-1) {//说明是父节点  理应有子节点
				//递归
				m.setChildren(getAllByPid(m.getId()));
			}
		}
		return ls;
	}
	
	
}

Servlet:

package com.zking.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.zking.biz.IModuleBiz;
import com.zking.biz.ModuleBiz;
import com.zking.entity.Module;


@WebServlet("/module.do")
public class IndexServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//设置编码方式
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		
		//获取out对象
		PrintWriter out = response.getWriter();
		
		//servlet调用biz biz调用dao
		IModuleBiz imb=new ModuleBiz();
		//调用方法
		List ls = imb.getAllByPid(-1);
		//把集合转成json格式字符串
		String str = JSON.toJSONString(ls);
		//把响应输送到客户端
		out.write(str);
		out.flush();
		out.close();
		
	}
}

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ include file="common/head.jsp" %>




Insert title here



   
    
    	
       
    
    	©
       
    
    
    	
    	

 注意:引入的公共页面是因为在其他页面封装了引入的五个类库

好啦,今天就到这里~~~
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/868000.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号