• java 定义mysql树形菜单


    数据库中的数据如下:

    1.首先在Dao中实现查找方法

    public List<ProductType> findAllByRoot() {
    			//定义集合,添加ProductType对象
    			List<ProductType> list = new ArrayList<ProductType>();
    			//查询语句,查询producttype表中的所有数据
    			String sql = "SELECT * FROM producttype ";
    			try {
    				//采用从C3P0获取connection连接
    				connection = jdbcUtil.getConnection();
    				//预编译
    				preparedStatement = connection.prepareStatement(sql);
    				resultSet = preparedStatement.executeQuery(); 
    				while (resultSet.next()) {
    					//定义ProductType对象,封装信息,并添加到集合当中,返回
    					ProductType productType = new ProductType();
    					productType.setTid(resultSet.getInt(1));
    					productType.setTypename(resultSet.getString(2));
    					productType.setPno(resultSet.getString(3));
    					productType.setParentTid(resultSet.getInt(4));
    					productType.setSort(resultSet.getInt(5));
    					list.add(productType);
    				}
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}finally {
    				//关闭连接
    				jdbcUtil.closeAll(resultSet, preparedStatement, connection);
    			}
    			return list;
    		}
    	
    

     2.定义工具类

    package com.bw.shop.util;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.bw.shop.bean.ProductType;
    import com.bw.shop.dao.impl.ProductTypeDaoImpl;
    
    public class TypeTree {
    	private List<ProductType> list = null; 
    	//list所所有数据
    	private StringBuffer sb = new StringBuffer();
    	// 瓶装结果
    	String s = ""; // var tree1 = new WebFXTreeItem('电脑整机','javascript:cx(1)');
    	String x = ""; // tree.add(tree1);
    
    	public StringBuffer getSb() {
    		return sb;
    	}
    
    	public TypeTree(List<ProductType> list) {
    		this.list = list; 
    		// list所所有数据
    		addTree(0);
    		// 从跟节点0开始调用
    
    	}
    
    	// 调用递归方法 ,该方法就是 将生产 js 字符串存入StringBuffer中
    	public void addTree(int parentTid) {
    		for (ProductType productType : list) {
    			if (productType.getParentTid() == parentTid) {
    				// var tree1 = new WebFXTreeItem('电脑整机','javascript:cx(1)');
    				s = "var tree" + productType.getTid()
    						+ " = new WebFXTreeItem('" + productType.getTypename()
    						+ "','javascript:cx(" + productType.getTid() + ")');";
    				sb.append(s + "
    ");
    				// tree.add(tree1);
    				if (parentTid == 0) {
    					x = "tree.add(tree" + productType.getTid() + ");";
    				} else {
    					x = "tree" + productType.getParentTid() + ".add(tree"
    							+ productType.getTid() + ");";
    				}
    				sb.append(x + "
    ");
    				addTree(productType.getTid());// 递归调用 查看当前的数据的子分类
    			}
    		}
    	}
    	//返回结果
    	public static String getTree() {
    		return new TypeTree(new ProductTypeDaoImpl().findAllByRoot()).getSb()
    				.toString();
    	}
    
    }
    

     3.页面赋值

    <%@ page contentType="text/html; charset=UTF-8" %>
    <%@page import="com.bw.shop.util.TypeTree"%>
    
    
    <script language="javascript">
    function cx(tid){
    	if(tid==0){
    		document.baseInfoForm.action="productTypeRoot.jsp";
    	}else{
    		document.baseInfoForm.action="productTypeList.jsp";
    	}
      
       document.getElementById("tid").value=tid;
       document.baseInfoForm.submit();
    }
    
      </script>
    <html>
    
    <head>
    <title>菜单</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
    <!--
    
    .mouse{
    	cursor: hand;
    	font-size: 9pt;
    }
    .selected{
    	background-color:#003366;
    	color: #FFFFFF;
    	/*font-weight:bold*/
    }
    div {
    	white-space:nowrap;
    	color: #FFFFFF;
    }
    -->
    </style>
    <link href="css/style.css" rel="stylesheet" type="text/css">
    <link rel="StyleSheet" href="css/xtree.css" type="text/css" />
    <script type="text/javascript" src="js/xtree.js"></script>
    </head>
    
    <body class="body_left">
    <script type="text/javascript">
    
        //实例一个根节点new WebFXTree( 节点名,节点事件  )
    	var tree = new WebFXTree('商品类别管理','javascript:cx(0)');
        //设置样式
    	tree.setBehavior('classic');
    
        <%=TypeTree.getTree()%>
                
    	document.write(tree);
    
    	
    </script>
    
    <form name="baseInfoForm" method="post" action="" target="typeright"    >
      <input name="pageNo" type="hidden" value="1" id="pageNo">
      <input name="tid" type="hidden" value="" id="tid"  >
    </form>
    </body>
    </html>
    

     运行结果如下:

  • 相关阅读:
    pythonchallenge10
    线程同步
    查缺补漏
    查看QQ是否在线
    project euler10
    Toon Shading, step 2
    一种简易的卡通渲染方法(上)
    GLSL学习笔记 9.1 Transformation
    Gloss Mapping
    一种简易的卡通渲染方法(下)
  • 原文地址:https://www.cnblogs.com/houjiie/p/6266272.html
Copyright © 2020-2023  润新知