`

JSTL之循环控制标签<c:foreach>

    博客分类:
  • JSTL
阅读更多
实例:
JstlCoreServlet.java代码如下:
package com.bjpowernode.jstl;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* 测试jstl核心库
* @author Administrator
*
*/
public class JstlCoreServlet extends HttpServlet {

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//普通字符串
request.setAttribute("hello", "hello world");

//html字符串
request.setAttribute("welcome", "<font color='red'>北京欢迎你</font>");

//条件控制标签
request.setAttribute("v1", 1);
request.setAttribute("v2", 2);
List userList = new ArrayList();
userList.add("user1");
userList.add("user2");
request.setAttribute("userlist", userList);

//结构
Group group = new Group();
group.setName("动力节点");
List users = new ArrayList();
for (int i=0; i<10; i++) {
User user = new User();
user.setUsername("User_" + i);
user.setAge(20 + i);
user.setGroup(group);
users.add(user);
}
request.setAttribute("users", users);

//map
Map map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
request.setAttribute("map", map);

//forTokens
request.setAttribute("strTokens", "a#b#c#d");

request.getRequestDispatcher("/jstl_core.jsp").forward(request, response);
}

}


jstl_core.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<%@ page import="java.util.*" %>   
<%@ page import="com.bjpowernode.jstl.*" %>   
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>   
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
<h1>测试JSTL核心库</h1>
<hr>
<li>循环控制标签c:forEach</li><br>
<h1>采用jsp脚本取得用户列表</h1>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<%
List users = (List)request.getAttribute("users");
if (users == null || users.size() == 0) {
%>
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
<%
}else {
for (Iterator iter=users.iterator(); iter.hasNext();) {
User user = (User)iter.next();
%>
<tr>
<td><%=user.getUsername() %></td>
<td><%=user.getAge() %></td>
<td><%=user.getGroup().getName() %></td>
</tr>
<%
}
}
%>
</table>
<P>
<h1>采用jstl标签取得用户列表</h1>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty users}">
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${users}" var="user">
<tr>
<td>${user.username }</td>
<td>${user.age }</td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
<p>
<li>循环控制标签c:forEach,varstatus</li><br>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty users}">
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${users}" var="user" varStatus="vs">
<c:choose>
<c:when test="${vs.count % 2 == 0}">
<tr bgcolor="red">
</c:when>
<c:otherwise>
<tr>
</c:otherwise>
</c:choose>
<td>${user.username }</td>
<td>${user.age }</td>
<td>${user.group.name }</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
<li>循环控制标签c:forEach,begin,end,step</li><br>
<table border="1">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>所属组</td>
</tr>
<c:choose>
<c:when test="${empty users}">
<tr>
<td colspan="3">没有符合条件的数据</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach items="${users}" var="user" begin="2" end="8" step="2">
<tr>
<td>
<c:out value="${user.username}"/>
</td>
<td>
<c:out value="${user.age}"/>
</td>
<td>
<c:out value="${user.group.name}"/>
</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</table>
<li>循环控制标签c:forEach,输出map</li><br>
<c:forEach items="${map}" var="v">
${v.key }=${v.value }<br>
</c:forEach>
</body>
</html>
说明:在表格中通常需要隔一行换一个背景,比如偶数行背景为红色,奇数行背景为白色,可采用jstl中的c:foreach来控制。见本例中的:“循环控制标签c:forEach,varstatus”处。
分享到:
评论
1 楼 myzhijie 2010-06-17  
看了 呵呵

相关推荐

    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: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,使用...

    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标签库

    - **迭代标签**:`&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的`....

    JSTL循环语法,java

    #### 二、JSTL循环标签——`&lt;c:forEach&gt;`详解 ##### 2.1 `&lt;c:forEach&gt;`标签基本用法 `&lt;c:forEach&gt;`是JSTL中最常用的循环标签之一,用于对集合或数组进行迭代操作。其基本语法结构如下: ```jsp &lt;c:forEach items=...

    JSTL(jsp标准标签库)

    异常信息:&lt;c:out value="${error.message}"&gt;&lt;/c:out&gt; ``` 这里捕获了一个除零错误,并将其信息存储在变量`error`中。 #### 条件控制语句:实现逻辑判断与分支 1. **`&lt;c:if&gt;`**:基于条件的分支。例如,`&lt;c:if ...

    JSTL核心标签库的一些应用

    以上只是JSTL核心标签库的一部分功能,实际应用中还有更多标签,如循环标签`&lt;c:forEach&gt;`、迭代标签`&lt;c:forTokens&gt;`等。这些标签在处理数据、控制流程等方面提供了极大的便利,使得JSP页面更加简洁、易读,也更符合...

    jstl标签使用文档,jstl标签使用帮助文档

    对于集合数据的处理,`&lt;c:forEach&gt;`标签是非常常见的: ```jsp &lt;c:forEach items="${list}" var="item"&gt; ${item} &lt;/c:forEach&gt; ``` 这会遍历名为`list`的集合,并将每个元素赋值给`item`变量。 JSTL还允许我们在...

    java中jstl(C标签)案例

    C标签库是JSTL的一部分,全称为Core标签库,包含了处理数据集合、条件判断、循环控制等功能的标签。以下是一些C标签库中常用的标签及其用法: 1. `&lt;c:set&gt;`:设置变量。例如: ```jsp &lt;c:set var="name" value=...

    JSTL--Core标签详解

    - `&lt;c:forEach&gt;`:用于遍历集合或数组,`begin`、`end`和`step`属性用于控制循环的起始、结束和步长。 - `&lt;c:forTokens&gt;`:根据分隔符拆分字符串并进行迭代。 4. URL相关标签: - `&lt;c:import&gt;`:导入外部资源,...

    JSTL 核心标签库 使用

    本文将深入探讨JSTL的核心标签库(core tag library),主要包括`&lt;c:set&gt;`、`&lt;c:remove&gt;`、`&lt;c:catch&gt;`、`&lt;c:if&gt;`、`&lt;c:choose&gt;`以及`&lt;c:forEach&gt;`等标签的使用。 1. `&lt;c:set&gt;`标签: `&lt;c:set&gt;`用于设置变量的值,...

    jstl标签库.txt

    `&lt;c:forEach&gt;`标签用于循环遍历集合或其他可迭代数据结构。其有两种主要的用法: - **遍历集合**: ```xml &lt;c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end=...

    JSTL 标签库 jsp C 标签库

    - **Core(C)库**:包含了用于控制流程的基本标签,如`&lt;c:if&gt;`、`&lt;c:choose&gt;`、`&lt;c:forEach&gt;`等。 - **I18N(Internationalization,国际化)库**:用于处理国际化和本地化,如`&lt;fmt:formatNumber&gt;`、`&lt;fmt:message...

    jstl c标签jar包

    C标签库是JSTL的一部分,它包含了类似于Java语言的循环和条件语句的标签,如`&lt;c:forEach&gt;`、`&lt;c:if&gt;`、`&lt;c:choose&gt;`等。这些标签使得JSP开发者能够更清晰地组织代码,而不是直接在页面上写Java脚本。例如,`&lt;c:...

    JSTL标签库

    主要包括`&lt;c:out&gt;`、`&lt;c:set&gt;`、`&lt;c:remove&gt;`、`&lt;c:catch&gt;`、`&lt;c:if&gt;`、`&lt;c:choose&gt;`、`&lt;c:when&gt;`、`&lt;c:otherwise&gt;`、`&lt;c:forEach&gt;`、`&lt;c:forTokens&gt;`、`&lt;c:import&gt;`、`&lt;c:url&gt;`和`&lt;c:redirect&gt;`等标签。这些标签...

    jstl核心标签库使用说明

    ArrayList&lt;String&gt; users = new ArrayList&lt;&gt;(); users.add("user1"); users.add("user2"); pageContext.setAttribute("users", users); &lt;c:forEach items="${users}" var="user"&gt; ${user} &lt;/c:forEach&gt; ``` ...

    JSTL2.0标准标签

    - `&lt;c:forEach&gt;`:循环遍历数组、集合或迭代器。 - `&lt;c:forTokens&gt;`:基于分隔符分割字符串并遍历结果。 - `&lt;c:set&gt;`:设置变量,可以将值存储在page、request、session或application作用域中。 - `&lt;c:remove&gt;`...

    jstl标签库 手册

    - **&lt;c:forEach&gt;** 和 **&lt;c:forTokens&gt;**:进行循环操作,`&lt;c:forEach&gt;`适用于遍历集合或数组,`&lt;c:forTokens&gt;`将字符串分割后进行迭代。 - **URL 相关标签**:`&lt;c:import&gt;`、`&lt;c:url&gt;`、`&lt;c:redirect&gt;`和`&lt;c:...

    c标签jstl架包

    C标签库包含了多个常用的标签,如`&lt;c:if&gt;`, `&lt;c:choose&gt;`, `&lt;c:when&gt;`, `&lt;c:otherwise&gt;`, `&lt;c:forEach&gt;`, `&lt;c:set&gt;`, `&lt;c:remove&gt;`等。这些标签帮助开发者在JSP页面中实现条件判断、循环、变量设置和删除等功能,...

Global site tag (gtag.js) - Google Analytics