Goods:动态加载所有的分类项到left.jsp

CategoryDao

 1 //把一个map中的数据映射到category中
 2     private Category toCategory(Map<String,Object> map)
 3     {
 4
 5         Category category=CommonUtils.toBean(map, Category.class);
 6         String pid=(String) map.get("pid");
 7         if(pid!=null)  //如果父分类id不为空
 8         {
 9             Category parent=new Category();
10             parent.setCid(pid);
11             category.setParent(parent);
12         }
13         return category;
14
15     }
16
17     //可以把多个Map<List<Map>> 映射成多个Category
18     private List<Category> toCategoryList(List<Map<String,Object>> mapList)
19     {
20         List<Category> categoryList=new ArrayList<Category>();
21         for(Map<String,Object> map:mapList)
22         {
23               Category c=toCategory(map);
24               categoryList.add(c);
25
26         }
27         return categoryList;
28
29     }
30     //通过父分类查询子分类
31     public List<Category> findByparent(String pid) throws SQLException
32     {
33
34         String sql="select * from t_category where pid=?";
35         List<Map<String,Object>> mapList=qr.query(sql, new MapListHandler(),pid);
36         return toCategoryList(mapList);
37
38     }
39            //得到所有一级分类的List
40     public List<Category> findAll() throws SQLException
41     {
42         /*
43          * 1、查询所有的一级分类 得到List<Category>
44          * 2、循环遍历每一个一级分类,为每个一级分类加载它的所有二级分类    }
45          * 3、返回所有的积极分类
46          */
47         //1、查询所有的一级分类
48         String sql="select * from t_category where pid is null";
49         //为防止丢掉pid 所以不用BeanListHandler  先把他放到一个Maplist中
50         List<Map<String,Object>> mapList=qr.query(sql, new MapListHandler());
51         List<Category>  parents=toCategoryList(mapList);
52
53         //2、循环遍历所有的一级分类 为每个一级分类加载他的所有的二级分类
54
55         for(Category parent:parents)
56         {
57             //查询出当前父分类的所有子分类
58             List<Category> children = findByparent(parent.getCid());
59             parent.setChildren(children);
60
61         }
62
63         return parents;
64
65 }

前端的left.jsp用的js小工具加载  具体的看mymenu.js文件

 1 <script type="text/javascript" src="<c:url value=‘/menu/mymenu.js‘/>"></script>
 2     <link rel="stylesheet" href="<c:url value=‘/menu/mymenu.css‘/>" type="text/css" media="all">
 3     <link rel="stylesheet" type="text/css" href="<c:url value=‘/jsps/css/left.css‘/>">
 4 <script language="javascript">
 5 /*
 6  * 1. 对象名必须与第一个参数相同!
 7    2. 第二个参数是显示在菜单上的大标题
 8  */
 9 var bar = new Q6MenuBar("bar", "网上书城");
10 $(function() {
11     bar.colorStyle = 4;//指定配色样式,一共0,1,2,3,4
12     bar.config.imgDir = "<c:url value=‘/menu/img/‘/>";//小工具所需图片的路径
13     bar.config.radioButton=true;//是否排斥,多个一级分类是否排斥
14
15     /*
16     1. 程序设计:一级分类名称
17     2. Java Javascript:二级分类名称
18     3. /goods/jsps/book/list.jsp:点击二级分类后链接到的URL
19     4. body:链接的内容在哪个框架页中显示
20     */
21 <c:forEach items="${parents}" var="parent">
22   <c:forEach items="${parent.children}" var="child">
23     bar.add("${parent.cname}", "${child.cname}", "/goods/jsps/book/list.jsp", "body");
24   </c:forEach>
25 </c:forEach>
26
27     $("#menu").html(bar.toString());
28 });
29
30 </script>
时间: 2024-11-05 20:43:19

Goods:动态加载所有的分类项到left.jsp的相关文章

携程Android App插件化和动态加载实践

携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实现细节,回顾携程Android App的架构演化过程,期望我们的经验能帮助到更多的Android工程师. 需求驱动 2014年,随着业务发展需要和携程无线部门的拆分,各业务产品模块归属到各业务BU,原有携程无线App开发团队被分为基础框架.酒店.机票.火车票等多个开发团队,从此携程App的开发和发布

zTree 从数据库中动态加载树形菜单

这几天做动态菜单用到了这个插件,目前用的很广泛的一个开源框架,最新发布的QUI框架就是用这个插件开发的菜单部分,因此还是很值得深入研究和学习,通过使用感觉功能很丰富,好多函数不用自己开发和编写,官网上有很详尽的API可以参考,用着算顺手但学习使用的过程中也遇到了一些困难,听过反复测试和查资料都理解了,但也在思考一个问题,怎么样才能使得最快的时间从接触一个新东西到灵活掌握的程度? 这个不仅仅是一个树形结构的菜单,每个节点左边可以有一个复选框,看了看也挺简单的,只需要在setting里面配置一个ch

【Jquery mobile】动态加载ListView 转

[Jquery mobile]动态加载ListView 分类: Jquery Mobile2011-12-01 09:04 13984人阅读 评论(1) 收藏 举报 jquerylistviewmobilestylesheetjavascriptlist 动态增加列表项是一个基本的功能,今天测试了一下.先贴下效果图: 点击“更多...”,就会增加列表项. 代码如下: [html] view plaincopy <!DOCTYPE html> <html> <head>

EasyUi -- 如何根据动态加载panel和Datagrid

在做项目的过程中,前台的面板和表格一般都不是固定的,它是根据后台传来的数据进行变化的.举个例子: 实现: 看一下我们的效果图: 这个上面的最左边的Panel要根据系别动态加载,有多少个系别就要加载都少个Panel,Panel里面的是一个table,这个里面也是动态加载出来. 右边是一个datagrid,datagrid里面的工作效率.业务能力等等也都是数据库动态加载出来的,包括后面的ABCD也是动态的. 这样就算数据库中的数据怎么变,这里都会动态地加载出来.那么怎么实现这些功能呢? 一.动态加载

ExtJS4.2 仅需配置URL动态加载GridPanel列(带分页)

最近做ExtJS一直想做个傻瓜式的GridPanel,今天折腾了一天,从GitHub找到的老外写的解决方案, 在他的基础上做了一些改动,增加了分页,增加了columns手动配置(原本只能动态生成),大家有兴趣可以自由扩展,我做了很详细的注释 效果图如下,仅需在html页面引入ext.all,并创建自定义控件,配置url即可创建带分页效果的GirdPanel 代码: 效果图: 一.动态加载自定义控件 自定义脚本包括两部分:DynamicGrid.js和DynamicReader.js 将Ext目录

动态加载页面数据的小工具 javascript + jQuery (持续更新)

使用该控件,可以根据url,参数,加载html记录模板(包含json参数对应,以及具体记录位置Index根据参数描述加载对应的属性,并可以根据简单的判断分支加载对应html或者控件)至列表容器内(JQuery选择器字符串)注: 该控件在使用前需引入JQuery框架支持,使用该控件,可极大的减少Ajax列表数据动态加载开发工作的实际工作量. 使用方式: 首先,添加控件引用,并加入Jquery支持 <script src="js/jquery.js"></script&g

APK动态加载框架(DL)解析

意义 这里说说这个开源项目的意义.首先要说的是动态加载技术(或者说插件化)在技术驱动型的公司中扮演这相当重要的角色,当项目越来越庞大的时候,需要通过插件化来减轻应用的内存和cpu占用,还可以实现热插拔,即在不发布新版本的情况下更新某些模块. 我 几个月前开始进行这项技术的研究,当时查询了很多资料,没有找到很好的开源.目前淘宝.微信等都有成熟的动态加载框架,包括apkplug,但是它们都是 不开源的.还有github上有一个开源项目AndroidDynamicLoader,其思想是通过Fragme

在mvc中动态加载菜单

最近做了一个项目, 要在客户端动态的显示菜单,也就是这些菜单是保存在数据库中的, 在客户端动态加载菜单,这样做的好处很明显,就是菜单很容易修改,直接在后台进行维护,再也不会直接在前面的 视图页面中进行修改,但是,缺点也很明显,实现起来有一定的难度,如果菜单多的话,在前台首次加载时,页面就会变慢,我想谈谈自己在这方面的经验 首先, 我们要创建两个表,(其实一个表也可以了,不过那样的话会变得比较复杂), 一个一级分类表, 一个二级分类表, 两个表的结构如下 : 一个是一级分类表,对应的就是父级菜单,

web页面动态加载UserControl,并调用用户控件中的方法来初始化控件

1,HTML页 头部注册: <%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/CeShiBu.ascx" TagPrefix="UserControl" TagName="CeShiBu"%> <%@ Register Src="~/WorkLog/WorkLogNewV1/UserControl/KaiFaBu.ascx" TagPrefix=&quo