树形结构的jsp展现
100000 根文件夹
110000 一级文件夹
110200 二级文件夹
最简单可以用ztree等控件
select * from
(
/*select '权限树' name,'0' id,'-1' parentid from dual */
select t.name name,t.id id,t.parentid parentid ,'1' leave from opm_menufolder t
union all select o.name name,o.id id,o.menufolderid,'2' leave from opm_menuitem o
union all select l.name name,l.id id,l.menuitemid ,'3' leave from opm_menuitemlimit l
)
start with parentid is null connect by prior id=parentid ORDER BY leave
按级别展现可以的,这种一次性查出来,对于有规律的数据结构还好(位数层级识别),可以在后台渲染好,js中渲染好,对于没有规律的不好做标记,
http://zhoujingxian.iteye.com/blog/935660
类似上述网站的jsp不好渲染(没有特殊的控件的话),有没有规律的数据可以后台用迭代递归查询,每次递归的时候打标签----这就是迭代和sql比的好处
如下:
select * from (select * from
(
/*select '权限树' name,'0' id,'-1' parentid from dual */
select t.name name,t.id id,t.parentid parentid ,'1' leave from opm_menufolder t
union all select o.name name,o.id id,o.menufolderid,'2' leave from opm_menuitem o
union all select l.name name,l.id id,l.menuitemid ,'3' leave from opm_menuitemlimit l
)
start with parentid is null connect by prior id=parentid ORDER SIBLINGS BY parentid) where parentid='100000'
迭代中的变量是,自动会每次一个新的在回调的时候就一个个找到之前的变量,这样就可以组合累加了
========================
代码:
Control
@RequestMapping(value="/system/opmRole/editUi")
public String editUi(OpmRoleVo opmRole,HttpServletRequest request,Model modle) {
Map<String,Object> paramq = new HashMap<String,Object>();
paramq.put("pId", "100000");
String str0="";
String str= treeRead(paramq);//这个在页面的时候用ajax请求
System.out.println(str);
return "/system/opmUser/editUi";
}
@SuppressWarnings("rawtypes")
@RequestMapping(value="/system/opmRole/Auths")
@ResponseBody
public String treeRead(Map<String,Object> param){
String str="";
List<Map> map= opmMenufolderService.getfordMenuLimt(param);
Map<String,Object> param1 = new HashMap<String,Object>();
for(Map p: map){
str+=p.get("ID")+"="+p.get("NAME")+"\n";
param1.put("pId", p.get("ID"));
str+=treeRead(param1);
}
return str;//直接组装树形数据
}
Service:
@Override
public List<Map> getfordMenuLimt(Map<String,Object> param) {
// TODO Auto-generated method stub
List<Map> map = new ArrayList<>();
map= (List<Map>) opmMenufolderMapper.getfordMenuLimt(param);
return map;
}
OpmMenufolderMapper .java
public interface OpmMenufolderMapper extends Mapper<OpmMenufolder> {
List<?> getfordMenuLimt(Map<String,Object> param);
}
mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.esteel.system.mapper.OpmMenufolderMapper" >
<resultMap id="BaseResultMap" type="com.esteel.system.bean.OpmMenufolder" >
<!--
WARNING - @mbggenerated
-->
<id column="ID" property="id" jdbcType="VARCHAR" />
<result column="NAME" property="name" jdbcType="VARCHAR" />
<result column="DISPLAYORDER" property="displayorder" jdbcType="DECIMAL" />
<result column="PARENTID" property="parentid" jdbcType="VARCHAR" />
<result column="URI" property="uri" jdbcType="VARCHAR" />
<result column="DESCRIPTION" property="description" jdbcType="VARCHAR" />
<result column="ICONCSS" property="iconcss" jdbcType="VARCHAR" />
<result column="SUBSYSTEM" property="subsystem" jdbcType="VARCHAR" />
</resultMap>
<select id="getfordMenuLimt" resultType="map" parameterType="map">
select * from (select * from
(
select t.name name,t.id id,t.parentid parentid ,'1' leave from opm_menufolder t
union all select o.name name,o.id id,o.menufolderid,'2' leave from opm_menuitem o
union all select l.name name,l.id id,l.menuitemid ,'3' leave from opm_menuitemlimit l
)
start with parentid is null connect by prior id=parentid ORDER SIBLINGS BY parentid) where parentid=#{pId}
</select>
</mapper>
相关推荐
**JSP AJAX Tree:构建动态树形结构菜单** 在Web应用开发中,树形结构菜单是一种常见的用户界面元素,用于组织和展示层次化的数据。在传统的网页中,每当用户点击节点时,整个页面需要重新加载,用户体验往往不佳。...
在IT行业中,Ajax树形结构是一种常见的...以上就是关于"jsp + servlet + ajax 展现的树形结构"的知识点详解。这个项目展示了如何利用这些技术构建一个交互式的、动态加载数据的树形视图,为用户提供更好的浏览体验。
5. **渲染菜单**:使用JSP标签库(Tag Libraries)或自定义标签来生成HTML结构,根据数据的层级关系构建树形结构。 6. **添加交互**:利用JavaScript处理用户点击事件,实现节点的展开和折叠功能。 7. **样式设计*...
dTree则是一款JavaScript库,用于在网页中生成交互式的树形结构,常用于展现层次化的数据。将Struts1与dTree结合,可以在服务器端处理数据并将其以树形结构的形式在客户端展示,提供用户友好的浏览体验。 **Struts1...
在Web应用中,树形结构可以用于展现目录层级、导航菜单、权限管理等场景。`JSP`实现树状结构通常涉及以下关键知识点: 1. **HTML/CSS**:用于构建用户界面的基本框架,如节点的显示、展开/折叠按钮、样式等。 2. *...
在IT领域,动态树形结构是一种常见的用户界面元素,它被广泛用于展现层次化数据,如文件系统、组织架构或数据库中的分类数据。在这种结构中,节点可以展开或折叠,以便用户能方便地浏览和操作数据。在本案例中,我们...
4. **xTree**:xTree是另一个流行的选择,它提供了一种简洁而强大的方式来构建交互式的树形结构。xTree支持多种节点样式,具有良好的性能和扩展性,可以与JSP结合,利用AJAX技术实现实时更新和异步操作。 5. **JSP ...
在压缩包中的"tree2.jsp"文件可能是一个示例页面,展示了如何在JSP(JavaServer Pages)环境中使用dTree和jQuery实现动态树形结构。JSP是一种用于开发动态Web内容的Java技术,它允许将HTML代码与Java代码混合编写,...
5. 渲染菜单:收到数据后,JavaScript动态创建HTML元素,构建树形结构。 6. 交互处理:添加事件监听器,如点击节点时触发展开/折叠,或者加载子节点等操作。 此外,为了优化性能和用户体验,还可以考虑使用虚拟滚动...
树形结构是一种常见的用户界面元素,尤其适用于展现层级关系的数据,如文件系统、组织结构或信息系统中的权限管理。在本项目中,菜单树可能采用递归方式生成,根据用户角色和权限动态加载各个菜单节点。菜单项可以...
`Tree`类是整个程序的核心,其主要职责是通过遍历指定目录下的所有文件和子文件夹,构建出树形结构。这涉及到递归地访问每个目录,为每个文件或文件夹创建相应的`Node`对象,并将其添加到`NodeList`中。`Tree`类还...
总之,“树形表格treetable完整版”提供了一种高效且灵活的方式来处理和展示层次数据,配合其演示demo,开发者可以轻松地将这种功能整合到自己的项目中,提升数据展现的直观性和用户体验。通过二次开发,可以进一步...
在Web开发中,经常需要构建树形结构来表示层级关系,例如在管理系统中常见的菜单、组织结构等。这里我们讨论如何使用Java、JSP和SSH(Struts、Hibernate、Spring)框架来实现一个无限级的树形菜单。 1. **开发环境...
3. **前端渲染**:利用JSP页面来渲染数据,生成可视化的树形结构。 #### 三、具体实现步骤 ##### 3.1 数据模型设计 在设计无限级分类目录树之前,需要先明确数据模型。假设我们有一个名为`Category`的表,其中...
在IT领域,特别是网页开发中,树形菜单代码是一种常用的技术,用于构建具有层次结构的导航系统。"各种语言脚本的树形菜单代码大全"这个资源包集合了多种编程语言和方法来创建这种功能,包括CSS(层叠样式表)、...
这里的“tree”标签进一步确认了这个组件是关于树形结构的展现。 在【压缩包子文件的文件名称列表】中: 1. **dtree.css** - 这是样式表文件,负责定义菜单树的外观和布局。CSS(层叠样式表)允许开发者控制元素的...
【jsp动态树】是一种在JavaServer Pages (JSP) 中实现的交互式树形结构,通常用于展现层次化的数据,如目录结构、组织架构或数据库记录。这种动态树的实现结合了服务器端的JSP技术和客户端的JavaScript,使得用户...
通过实践,初学者可以深入理解JSP和Servlet的工作原理,了解如何在实际项目中使用Oracle数据库,以及如何构建和应用树形结构。同时,它还提供了在线消息、文件管理等功能,这些是协同办公系统中的常见需求,有助于...
TreeTable是一种在网页中以树状结构展示数据的表格组件,它将表格和树形视图结合在一起,常用于组织和展示层次结构的数据。在给定的“treeTable(jeesite使用)”压缩包中,我们可以找到一个基于Java Web框架Jeesite...
3. **获取树形数据**:在服务层(Service层),使用Hibernate的HQL(Hibernate查询语言)或SQL查询语句,检索所有菜单,并按照父ID进行排序,构建出树形结构。可以使用递归方法或者预加载子菜单的方式来实现。 4. *...