`
- 浏览:
72541 次
- 性别:
- 来自:
西安
-
实例:
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”处。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
1. `<c:forEach>`:用于遍历集合、数组或迭代对象,实现循环操作。 2. `<c:forTokens>`:对字符串进行分割,然后对每个分割出来的元素进行循环处理。 **使用JSTL的好处**: - 提高代码的可读性:通过使用XML样式的...
在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-foreach-jar**"中,主要涉及到的是JSTL的两个核心标签`<c:if>`和`<c:forEach>`,它们是JSTL提供的条件判断和循环控制标签,通常与`jstl.jar`包一起使用。 首先,让我们详细了解**<c:if>**...
- **迭代标签**:`<c:forEach>`、`<c:forTokens>`,实现循环遍历。 - **URL操作标签**:`<c:import>`、`<c:param>`、`<c:url>`、`<c:redirect>`,用于处理URL相关的操作。 **4. 使用JSTL的步骤** 1. 将JSTL的`....
#### 二、JSTL循环标签——`<c:forEach>`详解 ##### 2.1 `<c:forEach>`标签基本用法 `<c:forEach>`是JSTL中最常用的循环标签之一,用于对集合或数组进行迭代操作。其基本语法结构如下: ```jsp <c:forEach items=...
异常信息:<c:out value="${error.message}"></c:out> ``` 这里捕获了一个除零错误,并将其信息存储在变量`error`中。 #### 条件控制语句:实现逻辑判断与分支 1. **`<c:if>`**:基于条件的分支。例如,`<c:if ...
以上只是JSTL核心标签库的一部分功能,实际应用中还有更多标签,如循环标签`<c:forEach>`、迭代标签`<c:forTokens>`等。这些标签在处理数据、控制流程等方面提供了极大的便利,使得JSP页面更加简洁、易读,也更符合...
对于集合数据的处理,`<c:forEach>`标签是非常常见的: ```jsp <c:forEach items="${list}" var="item"> ${item} </c:forEach> ``` 这会遍历名为`list`的集合,并将每个元素赋值给`item`变量。 JSTL还允许我们在...
C标签库是JSTL的一部分,全称为Core标签库,包含了处理数据集合、条件判断、循环控制等功能的标签。以下是一些C标签库中常用的标签及其用法: 1. `<c:set>`:设置变量。例如: ```jsp <c:set var="name" value=...
- `<c:forEach>`:用于遍历集合或数组,`begin`、`end`和`step`属性用于控制循环的起始、结束和步长。 - `<c:forTokens>`:根据分隔符拆分字符串并进行迭代。 4. URL相关标签: - `<c:import>`:导入外部资源,...
本文将深入探讨JSTL的核心标签库(core tag library),主要包括`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`以及`<c:forEach>`等标签的使用。 1. `<c:set>`标签: `<c:set>`用于设置变量的值,...
`<c:forEach>`标签用于循环遍历集合或其他可迭代数据结构。其有两种主要的用法: - **遍历集合**: ```xml <c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end=...
- **Core(C)库**:包含了用于控制流程的基本标签,如`<c:if>`、`<c:choose>`、`<c:forEach>`等。 - **I18N(Internationalization,国际化)库**:用于处理国际化和本地化,如`<fmt:formatNumber>`、`<fmt:message...
C标签库是JSTL的一部分,它包含了类似于Java语言的循环和条件语句的标签,如`<c:forEach>`、`<c:if>`、`<c:choose>`等。这些标签使得JSP开发者能够更清晰地组织代码,而不是直接在页面上写Java脚本。例如,`<c:...
主要包括`<c:out>`、`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`、`<c:forEach>`、`<c:forTokens>`、`<c:import>`、`<c:url>`和`<c:redirect>`等标签。这些标签...
ArrayList<String> users = new ArrayList<>(); users.add("user1"); users.add("user2"); pageContext.setAttribute("users", users); <c:forEach items="${users}" var="user"> ${user} </c:forEach> ``` ...
- `<c:forEach>`:循环遍历数组、集合或迭代器。 - `<c:forTokens>`:基于分隔符分割字符串并遍历结果。 - `<c:set>`:设置变量,可以将值存储在page、request、session或application作用域中。 - `<c:remove>`...
- **<c:forEach>** 和 **<c:forTokens>**:进行循环操作,`<c:forEach>`适用于遍历集合或数组,`<c:forTokens>`将字符串分割后进行迭代。 - **URL 相关标签**:`<c:import>`、`<c:url>`、`<c:redirect>`和`<c:...
C标签库包含了多个常用的标签,如`<c:if>`, `<c:choose>`, `<c:when>`, `<c:otherwise>`, `<c:forEach>`, `<c:set>`, `<c:remove>`等。这些标签帮助开发者在JSP页面中实现条件判断、循环、变量设置和删除等功能,...