jstl处理递归问题
来源:互联网 发布:微信视频网络不稳定 编辑:程序博客网 时间:2024/05/16 08:07
文章转自:http://www.iteye.com/topic/1116588
需要两个jsp页面,一个是你要显示树的jsp页面tree.jsp,一个是递归构造树的页面recursive.jsp
显示树的jsp页面,tree.jsp- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- <div style=" float:left; display:block; margin:10px; overflow:auto; width:200px; height:300px; border:solid 1px #CCC; line-height:21px; background:#FFF;">
- <ul class="tree">
- <%@include file="recursive.jsp"%>
- </ul>
- </div>
递归构造树的页面recursive.jsp
- <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- <li>
- <a href="main.html" target="navTab" rel="main">${menu.name}</a>
- <c:if test="${not empty menu.children}">
- <ul>
- <c:forEach var="menu" items="${menu.children}">
- <c:set var="menu" value="${menu}" scope="request"/>
- <jsp:include page="recursive.jsp"/>
- </c:forEach>
- </ul>
- </c:if>
- </li>
菜单Model,简单的一个Bean,树状结构的数据模型
- public class MenuItem{
- private String name;
- private String url;
- private List<MenuItem> children = new ArrayList<MenuItem>();
- public MenuItem(String name,String url){
- this.name = name;
- this.url = url;
- }
- public void addChildMenu(MenuItem menu){
- this.children.add(menu);
- }
- .......
- }
构造模拟数据
- MenuItem menu31 = new MenuItem("三级菜单1", "url31");
- MenuItem menu32 = new MenuItem("三级菜单2", "url32");
- MenuItem menu33 = new MenuItem("三级菜单3", "url33");
- MenuItem menu34 = new MenuItem("三级菜单4", "url34");
- MenuItem menu35 = new MenuItem("三级菜单5", "url35");
- MenuItem menu21 = new MenuItem("二级菜单1", "url21");
- menu21.addChildMenu(menu31);
- menu21.addChildMenu(menu32);
- menu21.addChildMenu(menu33);
- MenuItem menu22 = new MenuItem("二级菜单2", "url22");
- menu22.addChildMenu(menu34);
- menu22.addChildMenu(menu35);
- MenuItem root = new MenuItem("根目录", "root");
- root.addChildMenu(menu21);
- root.addChildMenu(menu22);
以上就是通过jstl标签构造生成树的全部代码了
最后生成的html代码
- <div style=" float:left; display:block; margin:10px; overflow:auto; width:200px; height:300px; border:solid 1px #CCC; line-height:21px; background:#FFF;">
- <ul class="tree">
- <li>
- <a href="main.html" target="navTab" rel="main">根目录</a>
- <ul>
- <li>
- <a href="main.html" target="navTab" rel="main">二级菜单1</a>
- <ul>
- <li><a href="main.html" target="navTab" rel="main">三级菜单1</a></li>
- <li><a href="main.html" target="navTab" rel="main">三级菜单2</a></li>
- <li><a href="main.html" target="navTab" rel="main">三级菜单3</a></li>
- </ul>
- </li>
- <li>
- <a href="main.html" target="navTab" rel="main">二级菜单2</a>
- <ul>
- <li>
- <a href="main.html" target="navTab" rel="main">三级菜单4</a>
- <a href="main.html" target="navTab" rel="main">三级菜单5</a>
- </li>
- </ul>
- </li>
- </ul>
- </li>
- </ul>
- </div>
1 0
- jstl处理递归问题
- jstl 问题处理
- 递归问题的处理
- Java 递归、尾递归、非递归 处理阶乘问题
- jstl问题
- jstl问题
- jstl 问题
- 由递归思想处理问题的基本原则
- 用循环和递归处理迷宫问题
- python使用递归思想处理问题
- JSTL字符串处理函数
- jstl处理字符串
- jstl 的日期处理
- jstl 字符串处理函数
- jstl字符串处理函数
- JSTL字符串处理函数
- JSTL EL字符串处理
- JSTL EL字符串处理
- C++ 虚函数的一个应用场景及其重要性
- C++声明和定义的区别 收藏
- Struts2框架搭建
- C语言编程代码分析0
- 云计算入门一
- jstl处理递归问题
- va_start(详解)转
- uitabbarcontroller 改变颜色
- NYOJ 4 ASCII码排序
- 如何实现列表页显示newstext(或newstext从副表搬到主表)?
- Eclipse下搭建Hadoop2.4.0开发环境
- 薪资调研解析_2014-10-29
- 使用Soot生成控制流图
- 【141029】VC游戏编写中的求解最短路径算法源码