JSTL之循環控制標籤<c:foreach>

[color=green][size=medium]實例:
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”處。[/size][/color]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章