easyui0203整合

该博客介绍了如何使用Java实现EasyUI的模块树结构数据加载。通过定义实体类Module,创建DAO接口及其实现,处理数据库查询,再到业务层处理子节点的递归加载,最后在Servlet中返回JSON数据给前端展示。主要涉及的技术包括Java、EasyUI、数据库操作和JSON序列化。
摘要由CSDN通过智能技术生成

实现这个效果

 一、相关插件

二、项目搭建

实体类 

 

package com.zking.easyui03.model;

import java.util.ArrayList;

import java.util.List;

public class Module {
    
    private Integer id;
    
    private Integer pid;
    
    private String text;
    
    private String icon;
    
    private String url;
    
    private int sort;
    
    private List<Module> children = new ArrayList<>();

    public Integer getId() {
        return id;
    }

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

    public Integer getPid() {
        return pid;
    }

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

    public String getText() {
        return text;
    }

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

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    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<Module> getChildren() {
        return children;
    }

    public void setChildren(List<Module> children) {
        this.children = children;
    }

    @Override
    public String toString() {
        return "Module [id=" + id + ", pid=" + pid + ", text=" + text + ", icon=" + icon + ", url=" + url + ", sort="
                + sort + "]";
    }
    

}

三、接口 与dao方法

接口:

package com.zking.easyui03.dao;

import java.util.List;


import com.zking.easyui03.model.Module;

public interface IModuleDao {
    
    public List<Module> listModel(int pid);

}
 

dao方法

package com.zking.easyui03.dao;

import java.sql.Connection;

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

import com.zking.easyui03.model.Module;
import com.zking.easyui03.util.DBHelper;

public class ModuleDao implements IModuleDao {

    @Override
    public List<Module> listModel(int pid) {
        List<Module> list = new ArrayList<>();
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            String sql = "select id,pid,text,icon,url,sort from t_module where pid=?";
            con = DBHelper.getsCon();
            ps = con.prepareStatement(sql);
            ps.setInt(1, pid);
            rs = ps.executeQuery();
            
            while(rs.next()) {
                Module m = new Module();
                m.setId(rs.getInt("id"));
                m.setPid(rs.getInt("pid"));
                m.setText(rs.getString("text"));
                m.setUrl(rs.getString("url"));
                m.setSort(rs.getInt("sort"));
                list.add(m);
            }
            
        } catch (Exception e) {
            
        } finally {
            DBHelper.Close(con, ps, rs);
        }
        
        return list;
    }
    
    
    public static void main(String[] args) {
        ModuleDao dao = new ModuleDao();
        List<Module> list = dao.listModel(21);
        list.forEach(t->System.out.println(t));
    }

}
四、biz层

package com.zking.easyui03.service;

import java.util.List;


import com.zking.easyui03.dao.IModuleDao;
import com.zking.easyui03.dao.ModuleDao;
import com.zking.easyui03.model.Module;

public class ModuleService implements IModuleService {
    
    private IModuleDao dao = new ModuleDao();

    @Override
    public List<Module> listModel(int pid) {
        
        List<Module> list = dao.listModel(pid);
        
        for(Module m: list) {
            if(m.getUrl() == null || "".equals(m.getUrl().trim())) {
                m.setChildren(listModel(m.getId()));
            }
        }
        
        return list;
    }
    
    
    public static void main(String[] args) {
        IModuleService service = new ModuleService();
        List<Module> list = service.listModel(-1);
        list.forEach(t->System.out.println(t));
    }

}

五、servlet

package com.zking.easyui03.servlet;

import java.io.IOException;

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

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.easyui03.model.Module;
import com.zking.easyui03.service.IModuleService;
import com.zking.easyui03.service.ModuleService;


@WebServlet("/moduleServlet")
public class ModuleServlet extends HttpServlet {
    
    private IModuleService service = new ModuleService();
    
    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        doPost(req, resp);
    }
    
    
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        
        req.setCharacterEncoding("utf-8");
        resp.setContentType("application/json; charset=utf-8");
        
        
        List<Module> list = service.listModel(-1);
        
        PrintWriter out = resp.getWriter();
        String str = JSON.toJSONString(list);
        
        out.write(str);
        out.flush();
        out.close();
    }

}

六、主界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <%@ include file="common/head.jsp" %>
    <title>Insert title here</title>
    <script>
    $(function() {
        $("#funcTree").tree({
            url: ctx+"/moduleServlet",
            onDblClick:function(node) {
                $("#funTab").tabs("add", {
                    title:node.text,    
                    content:'Tab Body',    
                    closable:true,    
                    tools:[{
                        iconCls:'icon-mini-refresh',    
                        handler:function(){    
                            alert('refresh');    
                        }    
                    }]
                })
            }
        });
        
    });
    </script>
</head>
<body class="easyui-layout">
        <div data-options="region:'north'" style="height:50px"></div>
        <div data-options="region:'south',split:true" style="height:50px;"></div>
        
        <div data-options="region:'west',split:true" title="West" style="width:230px;">
            <ul id="funcTree" class="easyui-tree"></ul>
        </div>
        
        <div data-options="region:'center',title:'Main Title',iconCls:'icon-ok'" style="border:0px;">
            <div id="funTab" class="easyui-tabs" style="width:100%;height:100%">   
                <div title="Tab1" style="padding:10px;display:none;">   
                    <table class="easyui-datagrid"
                            data-options="url:'${ctx}/data/datagrid_data1.json',method:'get',border:true,singleSelect:true,fit:true,fitColumns:true">
                        <thead>
                            <tr>
                                <th data-options="field:'itemid'" width="80">Item ID</th>
                                <th data-options="field:'productid'" width="100">Product ID</th>
                                <th data-options="field:'listprice',align:'right'" width="80">List Price</th>
                                <th data-options="field:'unitcost',align:'right'" width="80">Unit Cost</th>
                                <th data-options="field:'attr1'" width="150">Attribute</th>
                                <th data-options="field:'status',align:'center'" width="40">Status</th>
                            </tr>
                        </thead>
                    </table>  
                </div> 
            </div>
        </div>
    
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值