最近做一个从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> 为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c:forEach>的本体内容。 语法 语法1:迭代一集合对象之所有成员 <c:forEach [var="varName...
其次,`<c:if>`是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于在JSP页面中实现条件判断。JSTL是一套标准的标签库,旨在减少在JSP页面中使用脚本let和表达式语言,使页面更加清晰和可维护。`<c:if>`...
1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...
在Java Web开发中,`<c:if>`标签是JSTL(JavaServer Pages Standard Tag Library)的一部分,用于实现条件判断。JSTL是Java EE生态中的一个标准库,提供了许多预定义的标签来简化JSP页面的编写,提高代码的可读性...
在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...
在JSP(JavaServer Pages)开发中,`<c:forEach>` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相较于传统的JSP Scriptlets,使用...
其中,`<c:if>`标签是用于实现条件分支的关键组件之一,类似于编程语言中的if语句。 #### `<c:if>`标签的基本语法及使用场景 `<c:if>`标签主要用来根据表达式的真假来决定是否执行其内部的内容。它有两种基本的...
在这个主题"**c标签-if-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`<c:if>`和`<c:forEach>`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**<c:if>**...
`<c:forEach>`是JSTL中最常用的循环标签之一,用于对集合或数组进行迭代操作。其基本语法结构如下: ```jsp <c:forEach items="${collection}" var="item" varStatus="status"> <c:out value="${item}"/> </c:...
对于嵌套的集合(例如:List中包含List),使用`c`标签库(JSTL)进行遍历是一种常见的做法。本文将详细介绍如何利用`c:forEach`标签来遍历这种嵌套的数据结构。 #### 1. 基础知识介绍 在Java Web项目中,通常会...
- `<c:forEach>` 和 `<c:forTokens>`:循环标签,处理数组、集合和字符串。 - `<c:redirect>` 和 `<c:forward>`:处理请求重定向和转发。 - `<c:url>` 和 `<c:param>`:构建 URL 并添加参数。 2. **I/O 标签库 ...
- **迭代标签**:`<c:forEach>`、`<c:forTokens>`,实现循环遍历。 - **URL操作标签**:`<c:import>`、`<c:param>`、`<c:url>`、`<c:redirect>`,用于处理URL相关的操作。 **4. 使用JSTL的步骤** 1. 将JSTL的`....
首先,我们需要理解JSTL的核心标签库`<c:forEach>`和`<c:if>`,它们将在动态合并单元格的过程中起到关键作用。`<c:forEach>`用于遍历集合,而`<c:if>`用于执行条件判断。 第一种方法是基于列的合并。假设我们有一个...
- `<c:forEach>` 用于循环遍历集合。 - `<c:set>` 用于设置变量。 - `<c:out>` 用于安全地输出数据,防止XSS攻击。 - `<c:redirect>` 和 `<c:url>` 用于URL重定向和构建。 2. **XML库**:这个库提供了处理XML...
C标签库提供了一些类似于Java编程中的控制结构,例如`<c:if>`, `<c:forEach>`, `<c:choose>`, `<c:set>`等,这些标签能够帮助开发者更方便地在JSP页面上进行逻辑处理,而无需过多地编写脚本let或Java表达式。...
- **迭代处理**:<c:forEach>和<c:forTokens>等标签用于循环处理集合或数组。 - **条件判断**:<c:if>、<c:choose>等标签支持基本的条件逻辑处理。 - **URL操作**:<c:url>等标签用于生成和操作URL。 2. **...
通过本文的学习,我们掌握了如何使用JSTL中的`<c:if>`和`<c:forEach>`标签结合EL表达式来在JSP页面上循环显示数据库查询结果的方法。这对于Web应用开发中数据展示部分的工作是非常实用且重要的技能之一。希望本文...
- `<c:forEach>`:遍历集合中的元素,通过`items`属性指定集合,`var`属性定义迭代变量。例如: ``` <c:forEach items="${paramValues.Habit}" var="habit"> ${habit} </c:forEach> ``` 这段代码会遍历请求...
除了`<c:forEach>`,JSTL还提供了其他遍历标签,如`<c:forTokens>`用于遍历字符串中的分隔符。同时,JSTL还可以和其他标签库(如fmt、sql、function等)配合使用,实现更复杂的逻辑。 总之,JSTL遍历是Java Web开发...
1. **Core Tag Library**: 这个库提供了基础的控制结构标签,如`<c:if>`(条件判断)、`<c:forEach>`(循环)和`<c:out>`(输出)。`<c:out>`标签用于安全地输出数据,可以防止XSS攻击,例如: ```jsp <c:out ...