`
mayufenga1
  • 浏览: 55508 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jstl 中 <c:foreach> 多级循环

阅读更多

最近做一个从4-5个表中取数据而且都是list类型在页面上显示,为了不影响编码风格,jsp页面全部用jstl ,用<c:foreach>循环,但我也只对成简单的循环,多级循环没试过,测试了2个多小时,成功。先看代码:

       Persionz类

package com;

public class Person {
	private String name;
	private String  age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}

}

 User类

package com;

public class User {
	private String name;
	private String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}

}

   返回一个复杂的集合类型  Map<User,ArrayList[]> list;

 

public class HelpTest {
	


public  Map<User,ArrayList[]> meth(){
	User u=new User();
	u.setName("hello");
	u.setAge("123");
	ArrayList[] ob=new ArrayList[2];
	ArrayList<Person> l1=new ArrayList<Person>();
	ArrayList<User> l2=new ArrayList<User>();
	Person p=new Person();
	p.setName("ppp");
	p.setAge("111");
	l1.add(p);
	l1.add(p);
	l1.add(p);
	l2.add(u);
	l2.add(u);
	l2.add(u);
	ob[0]=l1;
	ob[1]=l2;
	Map<User,ArrayList[]> m=new HashMap<User,ArrayList[]>();
	m.put(u, ob);
	
	return m;
}

 jsp页面循环:request.setAttribute("list",list);

 <c:forEach var="list" items="${list}">
    <c:out value="${list.key.name}"></c:out>
    <br>
          <c:forEach var="ob1" items="${list.value}" varStatus="status" begin="0" end="0">
                  
                <c:forEach var="ob11" items="${status.current}">
                  <c:out value="${ob11.name}"></c:out>
                  <c:out value="${ob11.age}"></c:out>
                </c:forEach>    
          </c:forEach>
          <br>
          <c:forEach var="ob2" items="${list.value}" varStatus="status" begin="1" end="1">
                   <c:forEach var="ob22" items="${status.current}">
                  <c:out value="${ob22.name}"></c:out>
                  <c:out value="${ob22.age}"></c:out>
                  </c:forEach>
                </c:forEach>
         </c:forEach>

    请注意:

begin="0" end="0"  的限制

   在取ArrayList[] 里面的2个list对象时,不加限制循环就取成了list[0].get[0].list[1].get[0], .....是横着取过去的,而不是先把list[0]循环完后,在循环list[1]...而且数据循环是加下标是不能识别的。比如: items="ob2[1]"

 ok完事

 

分享到:
评论

相关推荐

    <c:forEach>/jstl-1.2

    &lt;c:forEach&gt; 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行&lt;c:forEach&gt;的本体内容。 语法 语法1:迭代一集合对象之所有成员 &lt;c:forEach [var="varName...

    myeclipse2017 jsp页面 在select里面写 导致后面代码不是彩色问题

    其次,`&lt;c:if&gt;`是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于在JSP页面中实现条件判断。JSTL是一套标准的标签库,旨在减少在JSP页面中使用脚本let和表达式语言,使页面更加清晰和可维护。`&lt;c:if&gt;`...

    JSTL标准标签库 <C:out>、<c:set>、<c:remove>和<c:catch>标记 <c:if>、<c:choose>、<c:when>和<c:otherwise>标记 <c:forEach>和<c:forTokens>标记

    1. `&lt;c:forEach&gt;`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `&lt;c:forTokens&gt;`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...

    开发<c:if>标签

    在Java Web开发中,`&lt;c:if&gt;`标签是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于实现条件判断。JSTL是Java EE生态中的一个标准库,提供了许多预定义的标签来简化JSP页面的编写,提高代码的可读性...

    c:forEach标签的使用祥解

    在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...

    c:foreach的各种用法

    在JSP(JavaServer Pages)开发中,`&lt;c:forEach&gt;` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相较于传统的JSP Scriptlets,使用...

    JSTL中if标签使用方法

    其中,`&lt;c:if&gt;`标签是用于实现条件分支的关键组件之一,类似于编程语言中的if语句。 #### `&lt;c:if&gt;`标签的基本语法及使用场景 `&lt;c:if&gt;`标签主要用来根据表达式的真假来决定是否执行其内部的内容。它有两种基本的...

    c标签-if-foreach-jar

    在这个主题"**c标签-if-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`&lt;c:if&gt;`和`&lt;c:forEach&gt;`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**&lt;c:if&gt;**...

    JSTL循环语法,java

    `&lt;c:forEach&gt;`是JSTL中最常用的循环标签之一,用于对集合或数组进行迭代操作。其基本语法结构如下: ```jsp &lt;c:forEach items="${collection}" var="item" varStatus="status"&gt; &lt;c:out value="${item}"/&gt; &lt;/c:...

    c标签遍历集合嵌套的List集合

    对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会...

    JSTL中文帮助文档

    - `&lt;c:forEach&gt;` 和 `&lt;c:forTokens&gt;`:循环标签,处理数组、集合和字符串。 - `&lt;c:redirect&gt;` 和 `&lt;c:forward&gt;`:处理请求重定向和转发。 - `&lt;c:url&gt;` 和 `&lt;c:param&gt;`:构建 URL 并添加参数。 2. **I/O 标签库 ...

    jstl标签库

    - **迭代标签**:`&lt;c:forEach&gt;`、`&lt;c:forTokens&gt;`,实现循环遍历。 - **URL操作标签**:`&lt;c:import&gt;`、`&lt;c:param&gt;`、`&lt;c:url&gt;`、`&lt;c:redirect&gt;`,用于处理URL相关的操作。 **4. 使用JSTL的步骤** 1. 将JSTL的`....

    JSP页面中利用C标签动态合并单元格

    首先,我们需要理解JSTL的核心标签库`&lt;c:forEach&gt;`和`&lt;c:if&gt;`,它们将在动态合并单元格的过程中起到关键作用。`&lt;c:forEach&gt;`用于遍历集合,而`&lt;c:if&gt;`用于执行条件判断。 第一种方法是基于列的合并。假设我们有一个...

    JSTL中文帮助文档_java_JSTL_

    - `&lt;c:forEach&gt;` 用于循环遍历集合。 - `&lt;c:set&gt;` 用于设置变量。 - `&lt;c:out&gt;` 用于安全地输出数据,防止XSS攻击。 - `&lt;c:redirect&gt;` 和 `&lt;c:url&gt;` 用于URL重定向和构建。 2. **XML库**:这个库提供了处理XML...

    JSP使用C标签时必须引入的jar包

    C标签库提供了一些类似于Java编程中的控制结构,例如`&lt;c:if&gt;`, `&lt;c:forEach&gt;`, `&lt;c:choose&gt;`, `&lt;c:set&gt;`等,这些标签能够帮助开发者更方便地在JSP页面上进行逻辑处理,而无需过多地编写脚本let或Java表达式。...

    jstl中文参考手册

    - **迭代处理**:&lt;c:forEach&gt;和&lt;c:forTokens&gt;等标签用于循环处理集合或数组。 - **条件判断**:&lt;c:if&gt;、&lt;c:choose&gt;等标签支持基本的条件逻辑处理。 - **URL操作**:&lt;c:url&gt;等标签用于生成和操作URL。 2. **...

    JSTL循环显示的用法.pdf

    通过本文的学习,我们掌握了如何使用JSTL中的`&lt;c:if&gt;`和`&lt;c:forEach&gt;`标签结合EL表达式来在JSP页面上循环显示数据库查询结果的方法。这对于Web应用开发中数据展示部分的工作是非常实用且重要的技能之一。希望本文...

    第8章 JSTL.ppt

    - `&lt;c:forEach&gt;`:遍历集合中的元素,通过`items`属性指定集合,`var`属性定义迭代变量。例如: ``` &lt;c:forEach items="${paramValues.Habit}" var="habit"&gt; ${habit} &lt;/c:forEach&gt; ``` 这段代码会遍历请求...

    jstl 遍历_jstl遍历_

    除了`&lt;c:forEach&gt;`,JSTL还提供了其他遍历标签,如`&lt;c:forTokens&gt;`用于遍历字符串中的分隔符。同时,JSTL还可以和其他标签库(如fmt、sql、function等)配合使用,实现更复杂的逻辑。 总之,JSTL遍历是Java Web开发...

    JSTL中文教程.pdf

    1. **Core Tag Library**: 这个库提供了基础的控制结构标签,如`&lt;c:if&gt;`(条件判断)、`&lt;c:forEach&gt;`(循环)和`&lt;c:out&gt;`(输出)。`&lt;c:out&gt;`标签用于安全地输出数据,可以防止XSS攻击,例如: ```jsp &lt;c:out ...

Global site tag (gtag.js) - Google Analytics