easyui java下拉列表项目_java、easyui-combotree树形下拉选择框

最近一直在研究这个树形的下拉选择框,感觉非常的有用,现在整理下来供大家使用:

首先数据库的表架构设计和三级菜单联动的表结构是一样,(父子关系)

66a674aece18de9727c3581ee51fc6b1.png

1、下面我们用hibernate建一下对应的额实体类:

package com.hanqi.entity;

//地区 实体类

public class Region {

//地区id

private String regionID;

//地区名称

private String regionName;

//上级id

private String parentRegionID;

public String getRegionID() {

return regionID;

}

public void setRegionID(String regionID) {

this.regionID = regionID;

}

public String getRegionName() {

return regionName;

}

public void setRegionName(String regionName) {

this.regionName = regionName;

}

public String getParentRegionID() {

return parentRegionID;

}

public void setParentRegionID(String parentRegionID) {

this.parentRegionID = parentRegionID;

}

@Override

public String toString() {

return "Region [regionID=" + regionID + ", regionName=" + regionName + ", parentRegionID=" + parentRegionID

+ "]";

}

}

2、dao层查询数据的方法:

//获取数据列表

public List getlist(String parentid)

{

List rtn=new ArrayList();

init();

//查询数据

rtn=se.createQuery("from Region where parentRegionID=?").setString(, parentid).list();

destory();

return rtn;

}

3、建立service层的(在这里需要注意的是:返回的JSON格式的数据是一个嵌套的格式,这里就用到了递归的方法即根据父ID查询他的子ID然后再继续查询子ID下面的子ID。。。

返回的数据格式 必须包含 按照id:'',text:''children:['{}']的格式,所以我们先建一个这种格式的类。从数据库中取出数据后以这种类的格式返回

)

建一个tree需要的格式的类:

package com.hanqi.service;

import java.util.List;

public class TreeNode {

private String id;

private String text;

private List children;

public String getId() {

return id;

}

public void setId(String id) {

this.id = id;

}

public String getText() {

return text;

}

public void setText(String text) {

this.text = text;

}

public List getChildren() {

return children;

}

public TreeNode(String id, String text) {

super();

this.id = id;

this.text = text;

}

public void setChildren(List children) {

this.children = children;

}

public TreeNode() {

super();

}

}

service层里面的调用数据库层数据,采用递归方法循环遍历 子id,当不满足条件时,递归方法跳出,重点理解下面的getTreeNode()方法:

package com.hanqi.service;

import java.util.ArrayList;

import java.util.List;

import com.hanqi.dao.RegionDao;

import com.hanqi.entity.Region;

public class RegionService {

//

public List getList(String parentid)

{

return new RegionDao().getlist(parentid);

}

//递归调用的方法

//获取子节点的集合

public List getTreeNode(String id)

{

List rtn =null;

List lr=getList(id);

if(lr!=null&&lr.size()>)

{

rtn=new ArrayList<>();

for(Region r:lr)

{

TreeNode tn=new TreeNode(r.getRegionID(), r.getRegionName());

System.out.println("name="+r.getRegionName());

//得到节点的子节点

//递归的调用

Listchildren= getTreeNode(r.getRegionID());

tn.setChildren(children);

rtn.add(tn);

}

}

return rtn;

}

}

servlet层调用service的数据,并把数据转换成JSON格式返回给前台:

package com.hanqi.web;

import java.io.IOException;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSONArray;

import com.hanqi.entity.H_Depart;

import com.hanqi.service.RegionService;

import com.hanqi.service.TreeNode;

/**

* Servlet implementation class DepartServlet

*/

public class DepartServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**

* @see HttpServlet#HttpServlet()

*/

public DepartServlet() {

super();

// TODO Auto-generated constructor stub

}

/**

* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)

*/

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

request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

response.setContentType("text/html");

RegionService rs=new RegionService();

List lr =rs.getTreeNode("");

String json=JSONArray.toJSONString(lr);

System.out.println(json);

response.getWriter().print(json);

}

/**

* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)

*/

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

// TODO Auto-generated method stub

doGet(request, response);

}

}

前段的显示层调用:

部门:

data-options="{url:'DepartServlet'}"

/>

效果:

68c22506747aef5a57978b1ea6f338a0.png

combobox级联检索下拉选择框

1.效果图 2.前端 @{ ViewBag.Title = "Index"; Layout = null; @*自动筛选下拉框*@

Bootstrap系列 -- 15&period; 下拉选择框select

Bootstrap框架中的下拉选择框使用和原始的一致,多行选择设置multiple属性的值为multiple.Bootstrap框架会为这些元素提供统一的样式风格

CSS自定义select下拉选择框&lpar;不用其他标签模拟&rpar;

今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

基于jQuery美化联动下拉选择框

今天给大家介绍一款基于jQuery美化联动下拉选择框.这款下下拉选择框js里自带了全国所有城市的数数库.下拉选择框适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲 ...

ul&plus;jquery自定义下拉选择框

...

背水一战 Windows 10 &lpar;105&rpar; - 通知(Toast)&colon; 带按钮的 toast&comma; 带输入的 toast(文本输入框,下拉选择框)

[源码下载] 背水一战 Windows 10 (105) - 通知(Toast): 带按钮的 toast, 带输入的 toast(文本输入框,下拉选择框) 作者:webabcd 介绍背水一战 Wind ...

随机推荐

&lbrack;转&rsqb;基于Starling移动项目开发准备工作

最近自己趁业余时间做的flash小游戏已经开发得差不多了,准备再完善下ui及数值后,投放到国外flash游戏站.期间也萌生想法,想把游戏拓展到手机平台.这两天尝试了下,除去要接入ane接口的工作,小游 ...

JavaSE自学笔记

ch03 [Thu Aug 18 2016 11:22:26 GMT+0800] 对象变量与对象之间是指代关系,对象变量并不能完全说明有无对象可用.这种指代关系是通过赋值运算建立起来的.对象变量保存的 ...

PreparedStatement接口及其方法的使用

PreparedStatement接口是Statement接口的子接口,使用它的好处有三个 一:简化代码,便于sql语句的书写 二:有效的禁止sql语句的注入,例如:用户名和密码,使用Prepared ...

安装64位版Oracle11gR2后无法启动SQLDeveloper的解决方案

安装64位版Oracle11gR2后发现启动SQL Developer时弹出配置java.exe的路径,找到Oracle自带java.exe后产生的路径“C:\app\用户名\product\11.2 ...

C&plus;&plus;多态性与C&num;的比较

多态性:统一操作作用于不同的对象可以有不同的解释,产生不同的执行结果.多态性可以分为两种:一是编译时的多态性,一是运行时的多态性.     编译时的多态性包括重载.覆盖.运算符重载.对于非虚的 ...

15、手把手教你Extjs5(十五)各种Grid列的自定义渲染

Grid各列已经能够展示出来了.列的类型包括字符型,整型,浮点型,货币型,百分比型,日期型和布尔型,我自定义了各种类型的渲染样式: 1.整型:标题栏居中,数值靠右显示,正数颜色为蓝色,负数颜色为红色, ...

apach ab 安装时的错误

1.cmd进入bin下:执行httpd -k install 需要管理员 登陆安装 我们打开conf文件夹,找到httpd.conf,修改如下内容,让serverroot指向你的安装位置: Defin ...

相识mongodb

1.下载完安装包,并解压下载地址:https://www.mongodb.org/dl/linux/x86_64或者可以直接wget http://fastdl.mongodb.org/linux/m ...

全面接触PDF&colon;最好用的PDF软件汇总&lpar;转&rpar;

全面接触PDF:最好用的PDF软件汇总(2010-12-07更新): http://xbeta.info/pdf-software.htm 比较全面的c#帮助类,各种功能性代码: https://gi ...

根据href给当前导航添加样式

var href = window.location.href.split('/')[window.location.href.split('/').length-1].substr(0,20); i ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值