ssm中java实现树状结构_java ssm使用递归写树形结构

实体类:

private String dspId;

private String parentId;  //父类id

private String dataName;

private Integer sortingNumber;

private String remarks;

private Date createTime;

private Date updateTime;

private Date deleteTime;

private Integer dataFlag;

private Integer anId;

private Integer isParent;//是否有父类

private List chlidSpecies;

dao层和接口使用mybatis逆向生成,这里就不住解释.

service层:

public List findDataspecies() {

// TODO Auto-generated method stub

//查询所有的结果

DataSpeciesExample example = new DataSpeciesExample();

Criteria criteria = example.createCriteria();

criteria.andDataFlagEqualTo(0);

List dataSpecies = dataspeciesMapper.selectByExample(example);

//创建最后的结果  想最后结果填充数据

List dataSpeciesList= new ArrayList<>();

for (DataSpecies species : dataSpecies) {

if(StringUtils.isBlank(species.getParentId()) ){

//一级菜单没有ParentId

dataSpeciesList.add(species);

}

}

//为一级菜单设计子菜单  使用getchild递归

for (DataSpecies daSpecies : dataSpeciesList) {

daSpecies.setChlidSpecies(getChild(daSpecies.getDspId(),dataSpecies));//这里getchild方法是递归

}

return dataSpeciesList;

}

//递归方法:

public List getChild(String id,List rootDataSpecies){

//创建子菜单

List speciesList = new ArrayList<>();

for (DataSpecies dataSpecies : rootDataSpecies) {

//遍历蓑鲉节点 ,将父类id与传过来的id进行对比

if(StringUtils.isNotBlank(dataSpecies.getParentId())){

if(dataSpecies.getParentId().equals(id)){

speciesList.add(dataSpecies);

}

}

}

//把子菜单循环遍历

for (DataSpecies childSpecies : speciesList) {

if(childSpecies.getIsParent()==1){

childSpecies.setChlidSpecies(getChild(childSpecies.getDspId(),rootDataSpecies));

}

}

if(speciesList.size()==0){

return null;

}

return speciesList;

}

web层直接调用service 的方法就行,这里不做说明.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python写一段脚本代码自动完成输入(目录下的所有)文件的数据替换(修改数据和替换数据都是输入的)【转】...

转自&#xff1a;http://blog.csdn.net/lixiaojie1012/article/details/23628129 初次尝试python语言&#xff0c;感觉用着真舒服&#xff0c;简单明了&#xff0c;库函数一调用就OK了[python] view plain copy 在CODE上查看代码片派生到我的代码片 import sys,os,os.path de…

java混合分页_坑,MySQL中 order by 与 limit 混用,分页会出现问题!

在Mysql中我们常常用order by来进行排序&#xff0c;使用limit来进行分页&#xff0c;当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下&#xff0c;会很容易出现…

Git 单机版

简介&#xff1a; Git 是一款开源的分布式版本控制系统&#xff0c;是当今最流行、先进的版本控制软件&#xff0c;没有之一。 Git 是一个分布式的版本控制系统&#xff0c;相反 SVN 就是一个集中式的版本控制系统了。SVN 每修改完一个文件要提交到服务端进行保存&#xff0c;而…

java中的Attribute类_java培训技术ModelAttribute注解修饰POJO类型的入参

RequestMapping(“/testModelAttribute”)//public String testModelAttribute(User user){public String testModelAttribute(ModelAttribute(“abc”) User user){System.out.println(“修改 user”user);return “success”;}/*** ModelAttribute 注解也可以来修饰目标方法 …

php a链接怎么传id_PHP函数参数的传递

PHP 支持两种参数传递方式&#xff0c;分别是按值传递(默认)和按引用传递。另外&#xff0c;PHP 还支持默认参数和可变长度参数列表。参数传递方式在调用函数时需要向函数传递参数&#xff0c;被传入的参数称作实参&#xff0c;而函数定义的参数为形参。PHP 中函数参数传递有 2…

VMware converte报错记录

物理机&#xff1a;centos7.2虚拟化&#xff1a;esxi6.0在进行P2V的时候&#xff0c;尝试了最新的VMware converte6.1及5.5均失败告终。最后在VMware converte6.0中解决迁移问题。转载于:https://blog.51cto.com/bigpi/1758352

php时区问题,PHP中遇到的时区问题解决方法

最近在学习PHP过程中发现PHP中的格式化时间戳比北京时间晚了8个小时&#xff0c;上网搜索发现原来是时区不对&#xff0c;解决办法是&#xff1a;1、永久修改更改php.ini文件中的data.timezone PRC 这是中国时间。重启Apache服务后生效。2、临时修改在使用格式化输入时间之前…

OSG开发概览

1 OSG基础知识 OSG是Open Scene Graphic 的缩写&#xff0c;OSG于1997年诞生于以为滑翔机爱好者之手&#xff0c;Don burns 为了对滑翔机的飞行进行模拟&#xff0c;对openGL的库进行了封装&#xff0c;osg的雏形就这样诞生了&#xff0c;1998年Don burns 遇到了同样喜欢滑翔…

hbuilder php xdebug,Hbuilder使用xdebug配置php断点调试

2019独角兽企业重金招聘Python工程师标准>>>##1. 背景不得不说Hbuilder是免费的前端开发工具中比较好用的&#xff0c;而且配合aptana开发php也马马虎虎(毕竟写前端的时候多些)。本人原是搞java的&#xff0c;后来打算用php做些个人项目(因为服务器成本低)&#xff0c…

iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数

iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,>main>set_private>iw_get_priv_info获取wireless网卡所能处理的所有wlan_private_args类型.dev_ioctl>wext_…

PHP登录表单提交前端验证,form表单提交前先用ajax进行验证(前端)

确 定var csrfToken Yii::$app->request->csrfToken?>;var reg /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;var regNum /^\d{6}$/;function check_form() {n false;//全局变量&#xff0c;以便下面做判断var dirversNum $(#dirversNum).val();var archivesNu…

用鼠标去控制物体移动的方法

using UnityEngine; using System.Collections;public class hero : MonoBehaviour {private bool isMouseDown false;private Vector3 lastMousePositionVector3.zero;void Update () {PlayerControler();}public void PlayerControler(){//将像素位置转换成世界坐标轴的位置…

php获取flash上传视频文件大小,如何获取flash文件(.swf文件)的长度和宽度

Flash文件一般是可以缩放的&#xff0c;但缩放显示会一影响flash的效果&#xff0c;比如动作变慢或变快。要想以最佳状态显示&#xff0c;就需要获取flash文件的长度和宽度&#xff0c;因此要使用方法&#xff1a;引入该文件Require(‘swfheader.class.php’);创建一个类的实例…

mx播放器有没有投屏功能_无线投屏、即插即用,投影仪其实可以更智能:明基 E580T...

无论是简单的办公室会议还是小型的线下活动&#xff0c;投影仪都是必不可少的利器&#xff1a;既能有不错的显示效果&#xff0c;也不用受屏幕尺寸的约束。尽管越来越多的智能电视可供电脑连接&#xff0c;但真正派上用场的时候&#xff0c;拎箱就走的投影仪显然是最佳选择。很…

特殊矩阵-对角矩阵

2019独角兽企业重金招聘Python工程师标准>>> 挖坑。 转载于:https://my.oschina.net/aslanjia/blog/651503

php常见漏洞修复,phpstudy漏洞修复方法

一.通过修改服务器环境内php.ini文件&#xff0c;将“expose_php On”修改成“expose_php Off”然后重启php即可。二.若无需要可以将一些php的危险函数禁用&#xff0c;打开/etc/php.ini文件&#xff0c;查找到 disable_functions&#xff0c;添加需禁用的以下函数名&#xf…

vs运行时候冒了这个错:无法启动IIS Express Web 服务器~Win10

后期会在博客首发更新&#xff1a;http://dnt.dkill.net 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 网上的方法多种&#xff0c;有让安装扩展插件的&#xff0c;有让在程序里面添加Http系列的组件&#xff0c;有其它其它的&#xff0c;可是。。。…

matlab脚本 定时停止_一触即发是什么软件?它是手机上极其强大的一款脚本辅助精灵...

一触即发app是手机上极其强大的一款免root的脚本辅助软件&#xff0c;堪称一键秒杀脚本精灵&#xff0c;除自动化、运行、管理外&#xff0c;还提供了脚本制作文字教程/视频教程&#xff0c;学习社区和图色处理、定时执行、王者荣耀、变量等命令参数和多点找色、多点找图、京东…

php无限极,php实现无限极分类 - MyClassPHP-Colin主页 - OSCHINA - 中文开源技术交流社区...

/*** 无限分类* param [type] $model 一个模型对象* param integer $pid 上级ID* param array &$categorys 一个保存结果的数组* param integer $spac 空格循环次数* return [type] array*/function data2array($model null , $pid 0 , &$categorys array() , $spac…

Graph(2014辽宁ACM省赛)

问题 F: Graph 时间限制: 1 Sec 内存限制: 128 MB提交: 30 解决: 5[提交][状态][论坛]题目描写叙述 Your task is to judge whether a regular polygon can be drawn only by straightedge and compass. The length of the straightedge is infinite. The width of the compa…