- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
jeesite项目理解概要1
首先进入页面,看到了目的是希望在建立一个菜单将我们自己的功能配置进取,所以需要熟悉整个项目的基础结构接下来分析根据登陆进入的地址找到系统首页我们找到首页找到页面我们进行分析,分析的核心,找到特征代码,需要细心,将浏览器中呈现的代码同源代码进行对比。如果仅仅是寻找不需要详细的研究每一段代码。当我们找到后找到对应的头部菜单连接地址?因为我们点击头部菜单,左侧栏会跟着变化。找到对应的url地址根据导航的地址找到对应的controller所对应的类然而我们发现这个conroller竟然没有任何业务,需要我们跳转到对应的页面找到对应的页面进行持续的分析认真地分析页面发现divclass=accordionid=menu-${param.parentId}c:setvar=menuListvalue=${fns:getMenuList()}/c:setvar=firstMenuvalue=true/c:forEachitems=${menuList}var=menuvarStatus=idxStatusc:iftest=${menu.parent.id eq (not empty param.parentId ? param.parentId:1)menu.isShow eq 1}我们刚才访问的url 是http://localhost:8080/jeesite/a/sys/menu/tree?parentId=27在这段代码中我们发现了整个div的样式控制时一个巧妙的组合,根据传入的id作为功能的父亲id ,同时根据${fns:getMenuList()}根据自定义标签库从后台直接获取用户的所有菜单,然后看他的父节点id同传入参数是否一致,如果一致就进行循环遍历,核心是寻找fns:getMenuList()需要找到对应的自定义标签,以及对应的类和方法。首先找到然后继续找到最终找到对应的fnstld文件在tld文件中找到需要继续分析代码看他的业务流程ListMenu menuList = (ListMenu)getCache(CACHE_MENU_LIST);if (menuList == null){User user = getUser();if (user.isAdmin()){menuList = menuDao.findAllList(new Menu());}else{Menu m = new Menu();m.setUserId(user.getId());menuList = menuDao.findByUserId(m);}putCache(CACHE_MENU_LIST, menuList);}returnmenuList;在这里里面代码的含义首先如果你已经读取了一次,那么直接从缓存中取。如果没有则得到当前的用户进行判断,看是否是管理人员,如果是则执行menuList = menuDao.findAllList(new Menu());,如果不是则执行menuDao.findByUserId(m);因为我们当前用户的角色是管理人员则,需要执行menuList = menuDao.findAllList(new Menu());需要继续分析关于在jeesite中的dao层menuList = menuDao.findAllList(new Menu());privatestatic MenuDao menuDao = SpringContextHolder.getBean(MenuDao.class);当我们执行取出数据的时候,我们发现需要从spring容器中取出同时需要了解知道beanFactory factoryBean 以及applicationContext和webApplicationContext的区别???由于我们使用了spring来管理项目,那当程序启动的时候会默认的情况下通过注解或者配置文件来将类实例化对象,然后将对象和对象之间的关系放入整个容器中。需要继续寻找menuDao我们发现了我们的menuDao,但是它的接口进行了注解,也就是说在通常情况下spring和mybatis集成,一般在dao层没有实现类,而是根据接口和mapper.xml文件生成接口对象的代理实现类。我们发现没有这个方法,根据java的继承原理,如果自己没有方法,一般情况下会找它的父看是否有我们不需要再封装好的框架中继续寻找,因为menuDao.xml中已经写好了这个方法通过sql找到加载的用户菜单,然后进行插入部门信息需要创建一个实体类用来描述部门的在用户conroller增加一个方法用来获取部门需要建立一个service 用来处理它的业务需要建立一个dao 用来处理和数据库的交互需要将servcie注入controller
您可能关注的文档
最近下载
- 小学信息技术 通用版Scratch+趣味编程+自动巡回车(课件).pptx VIP
- 2025年中国四氯化锆项目投资计划书.docx
- 构建水利安全生产风险管控“六项机制“工作指导手册(正文部分).pdf VIP
- 《现代写作教程 董小玉》第01章 绪论第三节.ppt VIP
- 2025-2026学年大象版(2024)小学科学二年级上册(全册)教学设计(附目录).docx
- 毕业论文-浅论骆驼祥子的悲生.doc VIP
- 中国醇酸防腐涂料项目商业计划书.docx
- 旅游产业经济贡献综合评析——以江西省为例.pdf VIP
- 2025年水平定向钻市场调查报告.docx
- 14J938抗爆泄爆图集规范-watermark.pdf VIP
文档评论(0)