`
0-0昔视界
  • 浏览: 4022 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类

<c:foreach>

阅读更多

JSTL之循环控制标签<c:foreach>
博客分类: JSTL

C++C#CJavaServlet.

实例:
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”处。
分享到:
评论

相关推荐

    <c:forEach>/jstl-1.2

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

    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标签的使用祥解

    &lt;% Map&lt;String, String&gt; map = new HashMap&lt;&gt;(); map.put("key1", "value1"); map.put("key2", "value2"); request.setAttribute("myMap", map); %&gt; ... &lt;!-- 遍历键 --&gt; &lt;c:forEach items="${myMap.keySet()}" var=...

    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;**...

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

    List&lt;ProductAttributeMetaEntity&gt; pamList = new ArrayList&lt;&gt;(); pamList = productAttributeMetaService.queryByChannel("陈酒频道"); for (int i = 0; i &lt; pamList.size(); i++) { ProductProperty pp = new ...

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

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

    javaWeb练习题.docx

    - 动态Include使用`&lt;jsp:include&gt;`的page属性,每次请求都会检查包含文件的最新内容,适合包含动态生成的内容。 7. **HTTP请求转发与重定向**: - `RequestDispatcher.forward()`用于请求转发,客户端浏览器地址...

    jsp+javaBean+servlet分页

    这是一个jsp+javaBean+servlet分页 主要功能 是通过 jstl标签中的 &lt;c:forEach 中的开始 begin和末尾end、list结果集的items属性 操作整个分页。大家有兴趣看看

    jsp中radio控件的使用

    &lt;c:forEach items="${options}" var="option"&gt; &lt;input type="radio" name="choice" value="${option.value}"&gt;${option.label} &lt;/c:forEach&gt; ``` 这段代码会遍历一个名为`options`的列表,为每个选项生成一个`radio...

    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的`....

    c标签 sql标签 格式化标签fmt的使用

    &lt;c:forEach var="item" items="${list}" varStatus="status"&gt; &lt;!-- 循环体内容 --&gt; &lt;/c:forEach&gt; ``` - **示例**: ```jsp &lt;c:forEach var="name" items="${list}" varStatus="i"&gt; ${i.index} // 从0开始的...

    一个类似foreach的简单自定义标签

    这个“一个类似foreach的简单自定义标签”是一个示例,它实现了与JSTL(JavaServer Pages Standard Tag Library)中的`&lt;c:forEach&gt;`标签类似的功能,用于遍历集合数据并进行渲染。 自定义标签的核心在于TLD(Tag ...

    JSP 标准标签库(c标签库)

    &lt;c:forEach items="${yourList}" var="item"&gt; ${item} &lt;/c:forEach&gt; ``` - **`&lt;c:remove&gt;`**: 用于删除一个变量。例如: ```jsp &lt;c:remove var="name"/&gt; ``` 3. **JSTL与EL(Expression Language)的配合**...

    练习2:访问当当购物车页面节点

    在这里,`${cartItems}`是一个服务器端传来的购物车项目集合,`&lt;c:forEach&gt;`标签遍历并展示每个项目的名称和价格。 总之,访问当当购物车页面节点涉及HTML元素的理解、DOM操作以及JSP的服务器端逻辑处理。通过熟练...

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

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

    c标签 c标签 c标签 c标签

    除了这些,JSTL还提供了其他标签,如`&lt;c:set&gt;`用于设置变量,`&lt;c:if&gt;`和`&lt;c:choose&gt;`进行条件判断,`&lt;c:forEach&gt;`进行循环遍历,等等。使用JSTL可以使JSP代码更加整洁,更易于理解和维护,是现代JSP开发中的重要工具...

    第8章 JSTL.ppt

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

    关于jsp的foreach大作业报告

    在JavaServer Pages (JSP)中,`&lt;c:forEach&gt;`标签是用于遍历集合对象,如数组、列表、集合、Map等,是JSTL (JavaServer Pages Standard Tag Library)的一部分。在这个大作业报告中,学生李田深入学习并实现了类似的...

    jstl c标签jar包

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

Global site tag (gtag.js) - Google Analytics