首页 文章 精选 留言 我的

精选列表

搜索[导航菜单],共10001篇文章
优秀的个人博客,低调大师

关于递归调用,实现树形菜单的样式

一:需求 现有以需求就是把某一个帖子的全部评论展示出来。 二:分析 关于对帖子的评论分为主评论和子评论,主评论就是对帖子的直接评论,子评论就是对评论的评论。 三:思路 先获取某一个帖子的全部主评论,递归判断是否有子评论,获取子评论。 四:编码 实体类: 1 import java.util.Date; 2 import java.util.List; 3 4 import com.fasterxml.jackson.annotation.JsonFormat; 5 6 import lombok.Data; 7 @Data 8 public class BsChannelPostReply { 9 private long replyId; 10 private String niceName; 11 @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 12 private Date replyDate; 13 private String content; 14 private long directRepliedId;//回复的直接评论的replyId 15 private List<BsChannelPostReply> children;//下面的子评论 16 } 获取主评论列表,和递归全部子评论: 1 @Override 2 @Datasource(value="community")//切换数据源 3 public List<BsChannelPostReply> getMainReply(int postId) { 4 // TODO Auto-generated method stub 5 List<BsChannelPostReply> listMain=dao.getMainReply(postId);//获取主评论 6 if(listMain.size()>=0){//如果主评论不为空 7 for (BsChannelPostReply bsChannelPostReply : listMain) { 8 bsChannelPostReply.setChildren(getMainReplyChildren(bsChannelPostReply.getReplyId()));//加载子评论 9 } 10 } 11 return listMain; 12 } 13 14 @Override 15 @Datasource(value="community")//切换数据源 16 public List<BsChannelPostReply> getMainReplyChildren(long replyId) { 17 // TODO Auto-generated method stub 18 List<BsChannelPostReply> listChildren=dao.getMainReplyChildren(replyId);//根据当前的replayId获取当前级子评论列表 19 if(listChildren.size()>=0){ 20 for (BsChannelPostReply bsChannelPostReply : listChildren) { 21 bsChannelPostReply.setChildren(getMainReplyChildren(bsChannelPostReply.getReplyId()));//在判断当前子评论是否还有子评论,递归调用,直到没有子评论 22 } 23 } 24 return listChildren; 25 } 五:效果 根据这样的递归调用就可以实现理论上的获取无极限的子评论列表。 欢迎大家一起说出自己的想法。

优秀的个人博客,低调大师

从入门到精通,Java学习路线导航

引言最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。 Java学习路线当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。 基础阶段首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Oracle数据库,JDBC,Linux基础,Java8新特性,数据结构和算法,设计模式。对于基础阶段,我们所要掌握的就是基础,虽然是基础,但学起来也够呛。因为是初学者,所以基础阶段会有一点难度,但只要肯坚持,这些也没什么难的。对于Linux、数据结构、算法和设计模式我们掌握一些基础就行了,也没必要学得非常透彻。 Web基础基础阶段过后,我们还必须要掌握一些Web方面的知识,Html,JavaScript,JQuery和AJax,同样的,对于这些知识,我们只需掌握基础,而不需要深究,否则,你将耗费大量的时间。 JavaWebWeb阶段过后,当然就是JavaWeb了,对于JavaWeb,我们需要掌握的知识有:Servlet,JSP,MVC设计模式,Cookie,Session,JavBean组件技术,EL表达式,JSTL表达式,过滤器Filter,监听器Listener,文件的上传下载,国际化。 JavaEE最后是JavaEE阶段,当你学到这个阶段,你对Java的程序开发已经了如指掌。然而,自己开发的过程是艰难而复杂的,所以JavaEE阶段我们需要去学习一些非常优秀的框架,来帮助我们进行程序开发。对于框架,我们需要学习Struts2,Hibernate,Spring,SpringMVC,JPA,SpringData,MyBatis,Spring Boot,Spring Cloud,Dubbo。要学习的框架其实非常多,有些框架也十分有难度,我们在学习阶段只要能够熟练使用它们即可,有能力的话可以研究一下源码,看看框架的底层实现。当然,除了框架,我们还需要学习Maven,Git,Github,ActiveMQ,Jenkins等。在JavaEE阶段学习的东西是最多的,但如果你经历了JavaEE阶段的学习,你的编程水平将会有质的飞跃。 其它这里是我在写了这篇文章几天后才加上的,有人向我反映,说数据结构和算法不学好就只能当个码农,说我在文章中指出"只需学习数据结构和算法的基础即可"是误导别人。确实,这句话是没说错,我在之前的文章中也强调过数据结构和算法的重要性,它们是程序的灵魂。然而,数据结构和算法是具有一定难度的,对于新手可能非常地不友好,新手要想彻底掌握它们是很困难的,所以我只是说在基础阶段掌握基础即可,而不需要去深究。而随着学习的深入,你的知识体系将会越来越庞大,这个时候,对于数据结构和算法可不能仅仅停留在表面了,我们应该去更加深入地研究这些东西。在这里也感谢大家给我提出的意见,只要大家说的在理,说的是对的,我都会去及时改正。金无足赤,人无完人,在写文章的过程中,难免会有一些不太严谨的地方,这里也欢迎大家批评指正。 学习资源我知道,对于有些名词,你们可能都没有听过。没关系,按照这个路线一点一点地往下学,相信你会感受到编程的魅力所在。下面对整条知识路线进行一个梳理,并附上对应的学习资源,需要的小伙伴们下载就好了。 Java基础——链接:https://www.aliyun.com/1111/2019/home?source=5176.11533457&userCode=wirqapo2&type=copy 提取码:5u4g 服务器提取——链链接:https://www.aliyun.com/1111/2019/home?source=5176.11533457&userCode=wirqapo2&type=copy 提取码:94ns Oracle数据库——链接:https://pan.baidu.com/s/12uVSvaY4pbXRWy2DtIIf8w 提取码:5r8p JDBC——链接:https://pan.baidu.com/s/1QF9S_GpucFvoLSrQqV6d0Q 提取码:ltnh Linux基础——链接:https://pan.baidu.com/s/1e0ekEVjmtfNWAEO0123wDw 提取码:pwxz Java8新特性——链接:https://pan.baidu.com/s/103nPGgEEjbxzuy1rHRJepg 提取码:6omt Java数据结构和算法——链接:https://pan.baidu.com/s/1LQ__Hp7i-TR7gRa4YJQXJg 提取码:zwwd Java设计模式——链接:https://pan.baidu.com/s/1ik7PRwlAVgJzhSCdthdu1A 提取码:nr5eWeb阶段JavaScript DOM——链接:https://pan.baidu.com/s/1_HtKFXeRm5xF7p2vYk_c7w 提取码:ks6g JQuery——链接:https://pan.baidu.com/s/1IPPNu2qsJ-MgLX7mGcVYbQ 提取码:umdrAJAX——链接:https://pan.baidu.com/s/1MC1iryOq9_SSV1qWYk5P5Q 提取码:78huJavaWebJavaWeb阶段——链接:https://pan.baidu.com/s/1EJYIgAuAHhaJLv8Pp-QjgA 提取码:584fJavaEEJavaEE阶段全套视频——链接:https://pan.baidu.com/s/1rJ5MyvFMuN_cbDVbw-2B3A 提取码:mdlf

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册