一:流程控制包含四个标签
<c:if>,<c:shoose>,<c:when>,<c:otherwise>
二:<c:if>
<c:set var="userName" value="张三"/>
<c:if test="${sessionScope.userName != null}" var="flag">
欢迎${sessionScope.userName}光临!
</c:if>
${flag}
三:<c:choose/>
<c:shoose>本身只当做<c:when>和<c:otherwise>的父标签
当使用<c:when>和<c:otherwise>做流程控制时,它们两者必须为</c:shoose>的子标签
<c:choose>
<c:when>
</c:when>
<c:when>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
when必须有test属性,当其运行结果为true时,则执行其中的内容,否则不会执行。
otherwise当其中所有条件没有成立时,则执行otherwise中的内容,它必须排在when之后
<c:set var="month" value="-12" />
<c:choose>
<c:when test="${month>0 && month<4}">
春
</c:when>
<c:when test="${month>3 && month<7}">
夏
</c:when>
<c:when test="${month>6 && month<10}">
秋
</c:when>
<c:when test="${month>9 && month<13}">
冬
</c:when>
<c:otherwise>
错误
</c:otherwise>
</c:choose>
四:循环<c:forEach/>
属性介绍:
var:存放集合中的元素的变量
items:要循环的集合
begin:开始的位置
end:结束的位置
step:增加的间隔
varStatus:存储特定信息
<%
List<String> list = null;
//List<String> list = new ArrayList<String>();
//list.add("aaa1");
//list.add("aaa2");
//list.add("aaa3");
session.setAttribute("list",list);
%>
<c:forEach items="${list}" var="str">
${str}<br/>
</c:forEach>
观察一下空指针异常,标签帮我们处理了,
<%
String[] nums = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
request.setAttribute("nums",nums);
%>
<c:forEach items="${nums}" var="num">
${num}<br />
</c:forEach>
记住:集合一定要在四个范围之一中存在
实例二:
<c:forEach items="${nums}" var="num" begin="2" end="3">
${num}<br />
</c:forEach>
实例三:
<c:forEach items="${nums}" var="num" step="2">
${num}<br />
</c:forEach>
//循环表格示例:
model层
package com.model;
public class User {
private int id;
private String name;
public User(int id, String name) {
super();
this.id = id;
this.name = name;
}
public User() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//servlet页面:
package com.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.model.User;
public class Chapter4Action extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
List<User> list = new ArrayList<User>();
list.add(new User(1,"张三"));
list.add(new User(2,"李四"));
list.add(new User(3,"王五"));
list.add(new User(4,"赵六"));
list.add(new User(5,"林奇"));
request.setAttribute("list", list);
request.getRequestDispatcher("chapter4.jsp").forward(request, response);
}
}
//jsp页面
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>chapter4.jsp</title>
</head>
<body>
<div>
<div>
<label>id</label>
<label>姓名</label>
</div>
<div>
<c:forEach items="${list}" var="user">
<label>${user.id}</label>
<label>${user.name}</label>
</c:forEach>
</div>
</div>
</body>
</html>
分享到:
相关推荐
4. **流程控制标签 - 迭代标签扩展 - `<c:forTokens>`** - `<c:forTokens>`:它可以按指定的分隔符分割字符串并遍历结果。比如: ``` ,Tuesday,Wednesday, " var="week" delims=","> ${week} ``` 用逗号分隔...
"ch15"这个文件可能代表了第15章的练习内容,通常会包含多个JSTL应用的示例,比如: - 使用`<c:forEach>`遍历列表并显示元素。 - 利用`<c:if>`和`<c:choose>`进行条件判断。 - 通过`<fmt:formatDate>`格式化日期。 -...
**第四部分:ھ JSTL֪ʶ.ppt** 这个文件名可能是编码问题导致的显示异常,正常情况下,可能会讨论JSTL的一些高级特性和最佳实践: 1. **自定义标签和JSTL的结合**:如何创建和使用自定义标签来扩展JSTL的功能。 2. ...
- **第4章:通过条件控制流程** 本章介绍了如何使用条件标签来控制页面逻辑的执行流程,包括if、choose等标签。 - **第5章:通过循环控制流程** 介绍了如何使用循环标签如forEach和forToken来遍历列表或字符串...
在这个“王者归来”系列的第8章中,焦点集中在JSTL(JSP Standard Tag Library,JSP标准标签库)上,这是一个用于增强JSP页面功能和可维护性的强大工具集。 JSTL是Java Community Process (JCP)为JSP开发的官方标准...
**第4章:JSP指令与动作** 这一章将深入讨论`page`、`include`、`taglib`等指令,以及`jsp:include`、`jsp:forward`等动作。题目可能要求你正确使用指令和动作实现页面包含、转发、引入自定义标签库等功能。 **第5...
《JSP应用开发第15章源码》是邓子云和郝斌合著书籍中的一个章节实践项目,主要展示了如何使用Structs和JSTL技术来构建一个办公自动化系统。这一章节的源码旨在帮助读者深入理解这两种技术在实际项目中的应用,提升...
### 第4章:JSP内置对象 本章介绍了JSP的九大内置对象,如request、response、session、application等。这些对象提供了访问HTTP请求、响应、会话和全局应用程序数据的方法,是JSP进行服务器端编程的重要工具。 ###...
动作标签提供了一种声明式编程方式,用于动态地插入对象、执行操作或控制流程。例如,`jsp:useBean`用于实例化和查找JavaBeans,`jsp:setProperty`用于设置Bean的属性,`jsp:getProperty`用于获取Bean的属性,`jsp:...
这一章主要讲解了Java语言的基本概念,包括数据类型、变量、运算符、流程控制语句等。通过实例演示,使读者能够快速上手Java编程。 第三章:MyEclipse 6的集成开发环境 详细介绍了MyEclipse 6的用户界面和基本操作...
- 提供了处理控制流程(迭代、条件语句)和页面导航的基本功能。 - 示例:`<c:forEach>`用于迭代数组或集合,`<c:if>`和`<c:choose>`用于条件判断。 2. **I18N库**(`http://java.sun.com/jsp/jstl/fmt`,前缀`...
通过学习和实践《Java Web程序设计任务教程》第12章的源码,开发者能够更深入地了解Java Web应用的开发流程,为构建更复杂的Web应用打下坚实的基础。同时,对于初学者来说,这是一个很好的学习资源,提供了从理论到...
第四章 PL/SQL中的控制语句........368 第五章 PL/SQL游标........................370 第六章 PL/SQL异常........................373 第七章 PL/SQL存储过程................374 第八章 PL/SQL包.380 第九章 PL/...
第九章可能介绍如何利用Spring简化开发流程。 9. **Struts或JSF(JavaServer Faces)**:这两者都是用于构建MVC架构的Web框架,可能作为示例的一部分,演示如何组织和控制应用程序的流程。 10. **部署与测试**:...
第四章 PL/SQL中的控制语句........368 第五章 PL/SQL游标........................370 第六章 PL/SQL异常........................373 第七章 PL/SQL存储过程................374 第八章 PL/SQL包.380 第九章 PL/...
1. **Core标签库**:提供基本的控制流程,如条件语句、循环等。 2. **XML标签库**:用于处理XML文档。 3. **JDBC标签库**:简化数据库操作。 4. **JSTL国际化**:支持多语言环境。 5. **Function标签库**:提供一...
1. **JavaScript基础**:变量、数据类型、操作符、流程控制、函数等基础知识。 2. **DOM(Document Object Model)**:通过JavaScript操作HTML元素的方法,如增删改查节点。 3. **BOM(Browser Object Model)**:...
这两章可能使用了JSTL进行数据处理和流程控制。 10. 国际化与本地化:JSP支持多语言环境,源码可能展示了如何使用资源包(Resource Bundle)实现国际化和本地化功能。 通过研究《JSP程序开发范例宝典》第9、10章的...