• 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>
  • 相关阅读:
    领域驱动设计学习笔记(一 事件总线)
    枚举位预算 (适用于权限和拥有多种枚举值)
    Javascript闭包(狗血剧情,通俗易懂)
    Xml序列化和反序列化
    Javascript轮播 支持平滑和渐隐两种效果(可以只有两张图)
    Git使用教程
    MySQL数据库基本用法-聚合-分组
    MySQL数据库基本用法-查询
    MySQL数据库基本用法
    JS中获取文件点之后的后缀字符
  • 原文地址:https://www.cnblogs.com/xiaoying1245970347/p/4773596.html
Copyright © 2020-2023  润新知