`
xi5566
  • 浏览: 151777 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

不用递归做递归的效果 菜单排序

阅读更多
废话不多说 直接看service
package com.hcwy.jsp.product.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import com.hcwy.basic.jdbc.excute.MySqlDBExecute;
import com.hcwy.model.product.bean.Product;

public class IndexService {
	MySqlDBExecute execute=new MySqlDBExecute();
	
	//按总分层取数据
	public List findByCent(){
		String sql = "select p.proplace,p.proid,p.proname,p.proprive,p.centid,c.centname,p.fid from product p,cent c where c.centid=p.centid  order by c.centname desc";
		List result = execute.findMap(sql);
		return result;
	}
	
	
	
	public Map get2() {
		IndexService is=new IndexService();
		List list=is.findByCent();
		Map map1=new HashMap();
		String cent="";
		List list1=new ArrayList();		
		HashMap hap = new HashMap();
		String preCentName = "";
		Vector vec = null;
		for (int i = 0; i < list.size(); i ++) {
			HashMap map=(HashMap)list.get(i);
			String centName = map.get("centname").toString();
			String proPlace = map.get("proplace").toString();
			String centid=map.get("centid").toString();
			String proid=map.get("proid").toString();
			if (centName.equals(preCentName)) {
				vec.add(centName);
				vec.add(proPlace);
				vec.add(centid);
				vec.add(proid);
			} else {
				if (i != 0) {
					hap.put(preCentName, vec);
				}
				vec = new Vector();
				vec.add(centName);
				vec.add(proPlace);
				vec.add(centid);
				vec.add(proid);
			}
			
			preCentName = centName;
		}
		hap.put(preCentName, vec);
		return hap;
	}
	
	
	
	public Map get1() {
		IndexService is=new IndexService();
		List list=is.findByCent();
		Map map1=new HashMap();
		String cent="";
		List list1=new ArrayList();		
		HashMap hap = new HashMap();
		String preCentName = "";
		Vector vec = null;
		for (int i = 0; i < list.size(); i ++) {
			HashMap map=(HashMap)list.get(i);
			Product p=new Product();
			p.setCentname(map.get("centname").toString());
			p.setProplace(map.get("proplace").toString());
			p.setCentid(Integer.parseInt(map.get("centid").toString()));
			p.setProid(Integer.parseInt(map.get("proid").toString()));
			if (p.getCentname().equals(preCentName)) {
				vec.add(p);
			} else {
				if (i != 0) {
					hap.put(preCentName, vec);
				}
				vec = new Vector();
				vec.add(p);
				
			}
			preCentName = p.getCentname();
		}
		hap.put(preCentName, vec);
		return hap;
	}
	
	
}






action就不看了 就是set

直接到JSP吧

<%@ page language="java" pageEncoding="gbk"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

<html:html lang="true">
  <head>
    <html:base />
    
    <title>test.jsp</title>

	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
   <logic:iterate id="hep" name="list">
   		<bean:write name="hep" property="key"/>
		
		<bean:define id="asd" name="hep" property="value"></bean:define>
		<br> 
		<logic:iterate id="hep1" name="asd">
			${hep1.centname }
		</logic:iterate>
		<br> 
   </logic:iterate>
  </body>
</html:html>





分享到:
评论

相关推荐

    递归查询菜单树,支持mysql,oracle

    - `sort_order`: INT,整数,表示菜单的排序顺序。 为了进一步优化性能,可以考虑创建索引来加速查询,例如对`parent_id`和`sort_order`字段创建索引。 在处理菜单树时,除了查询数据,我们还需要考虑如何在应用...

    SQL SERVER 列表菜单递归处理方式以及大小节点排序

    当初花了很长时间查资料、逛博客 终于搞定的排序 以及对于处理菜单列表显示的 问题。希望对你们有帮助。压缩包包含数据表创建脚本 以及 实现功能的语句 表结构字段 id、name、url、pid、indexs

    springboot + vue 实现递归生成多级菜单(实例代码)

    在本文中,我们使用 Oracle 数据库,并创建了一个名为 wxmini_menus 的表,该表包含了菜单 ID、菜单名称、菜单 URL、菜单图标、父菜单 ID、状态、菜单排序等字段。 知识点五:实体类设计 在实现递归生成多级菜单时...

    C#递归法实现的树型菜单

    查询应返回一个包含所有菜单项的列表,并按其在树中的顺序排序。在查询时,可以通过连接查询或自连接来找出每个菜单项的子菜单项。 4. 递归构建树: 创建一个方法,接受一个菜单项列表和父菜单ID,返回与该父ID...

    layui递归实现动态左侧菜单

    在实体类中,我们定义了`MeunInfo`,包含了菜单的各种属性,如`id`(菜单ID)、`meunTitle`(菜单标题)、`meunUrl`(菜单链接)、`meunStatus`(菜单状态)、`meunParent`(父菜单ID)、`meunSort`(菜单排序)以及...

    jQuery递归无限极树状菜单

    本文将深入探讨如何使用jQuery实现递归的无限级树状菜单,并介绍相关的技术点。 首先,理解"无限级"的概念。无限级树状菜单意味着菜单的层级数量没有限制,可以任意添加子节点,而不仅仅是局限于三到四级。这要求...

    php递归获取子级,父级,无限极分类,带demo,效率超高

    通常,使用预排序遍历树(Preorder Traversal)或后序遍历(Postorder Traversal)可以有效减少递归深度,降低内存使用。另外,通过缓存结果,避免重复计算,也能显著提高性能。 5. **DataTree.php**: 这个文件很...

    由后端flask生成的侧边栏无线级菜单tree

    在接收到后端返回的JSON数据后,我们可以遍历数据结构,创建相应的DOM元素,并根据菜单的层级关系进行排序和嵌套。 对于无限级菜单,关键在于正确处理展开/折叠状态以及在用户点击时更新状态。这可以通过维护一个...

    树父节点递归获取树子节点

    在Java中,通过递归方法我们可以轻松地实现从父节点获取所有子节点的功能,这对于构建树形结构的应用程序(如文件系统、组织结构或菜单系统)非常有用。理解并掌握递归是每个程序员必备的技能之一。

    Oracle递归查询

    - `IND`: 排序字段,用于控制输出顺序。 - `NAME`: 节点名称。 创建表的SQL语句如下: ```sql CREATE TABLE TEST_TREE ( ID NUMBER, PID NUMBER, IND NUMBER, NAME VARCHAR2(32) ); ``` 接下来,初始化一些...

    Python中递归函数的使用示例

    2、然后选择“open”菜单打开项目 3、在IDE中打开test_one.py文件,右键点击“Run test_one”或者直接点击右上角的播放键。 如果一切正常,那么你会在PyCharm控制台中看到运行的效果。 阅读人员:学习Python语言的...

    Oracle递归树形结构查询功能

    Oracle数据库在处理树形结构数据时提供了强大的递归查询功能,这种特性对于组织结构、产品分类、层级菜单等场景的应用非常广泛。递归树形结构查询主要依赖于`CONNECT BY`和`PRIOR`关键字,它们允许我们构建复杂的...

    Freemarker如何生成树形导航菜单(递归)

    后台数据以JSON格式提供,包括菜单项的各种属性,如ID、名称、URL、排序号等,以及子菜单的引用。在实际应用中,这些数据通常由服务器端程序(如Spring MVC、Struts2等)处理后传递给Freemarker模板。 总结来说,...

    php无限极分类递归排序实现方法

    在PHP编程中,无限极分类递归排序是一个常见的需求,特别是在处理树形结构的数据时,如网站导航菜单、组织架构或者商品分类等。无限极分类意味着一个分类可以有任意多的子分类,而递归排序则能确保这些子分类按照...

    C#递归创建树

    ### C#递归创建树知识点解析 #### 一、知识点概览 在软件开发中,树形结构是一种常见的数据组织形式,广泛应用于文件系统、菜单系统等场景中。本篇文章将详细探讨如何利用C#语言中的递归技术来构建一个树形结构。...

    动态树形结构的级联菜单

    CSS则用于样式设置,实现菜单的外观效果,如展开/折叠的动画、层次感的视觉提示等。常见的JavaScript库如jQuery、Vue.js、React.js等都有相应的组件或插件支持级联菜单的创建。 5. **数据绑定**:级联菜单的数据...

    无限极节点,控件类,2个递归方法.rar

    在IT领域,无限极节点(Infinite Hierarchical Nodes)是一种常见的数据结构,广泛应用于树形控件、组织架构展示、菜单系统等场景。无限极节点意味着一个节点可以有任意数量的子节点,形成无限级别的深度。为了有效...

    动态生成菜单,可以方便地调整界面(Vs2005)

    表通常包括`Id`(主键)、`Name`(菜单名称)、`ParentId`(父菜单ID,用于建立父子关系)、`Url`(链接地址)和`Order`(排序字段)等字段。 2. **数据访问层**:使用ADO.NET或者Entity Framework等库来连接数据库...

    19种特效菜单

    8. **多级层次菜单**:菜单项可以有多个层级,通过JavaScript可以实现无限级别的递归,方便组织大量信息。 9. **响应式菜单**:根据屏幕尺寸自动调整布局,确保在不同设备上都能良好显示,JavaScript可监听窗口大小...

    Java各种排序算法代码.zip

    在Java中,快速排序通常用递归实现。 5. 归并排序(Merge Sort): 归并排序是一种分治策略,将大问题分解为小问题解决。它将数组分为两个子数组,分别进行排序,然后合并成一个有序数组。Java中,归并排序需要额外...

Global site tag (gtag.js) - Google Analytics