1.<c:forEach>
语法:
a、在Collection中迭代:
<c:forEach
[var=”varName”] items=”collection” [varStatus=”varStatusName”]
[begin=”begin”]
[end=”end”] [step=”step”]>
Body 内容
</c:forEach>
b、迭代固定的次数:
<c:forEach
[var=”varName”] [varStatus=”varStatusName”]
begin=”begin”
end=”end” [step=”step”]>
Body 内容
</c:forEach>
下表是items支持的Collection对象类型
items 的值
|
所产生的 item 值
|
java.util.Collection
|
调用 iterator() 所获得的元素
|
java.util.Map
|
java.util.Map.Entry 的实例
|
java.util.Iterator
|
迭代器元素
|
java.util.Enumeration
|
枚举元素
|
Object 实例数组
|
数组元素
|
基本类型值数组
|
经过包装的数组元素
|
用逗号定界的 String
|
子字符串
|
javax.servlet.jsp.jstl.sql.Result
|
SQL 查询所获得的行
|
下表是varStatus的属性
特性
|
Getter
|
描述
|
current
|
getCurrent()
|
当前这次迭代的(集合中的)项
|
index
|
getIndex()
|
当前这次迭代从 0 开始的迭代索引
|
count
|
getCount()
|
当前这次迭代从 1 开始的迭代计数
|
first
|
isFirst()
|
用来表明当前这轮迭代是否为第一次迭代的标志
|
last
|
isLast()
|
用来表明当前这轮迭代是否为最后一次迭代的标志
|
begin
|
getBegin()
|
begin 属性值
|
end
|
getEnd()
|
end 属性值
|
step
|
getStep()
|
step 属性值
|
说明:
a.在标签中,遍历打印元素一般有两种写法
<c:forEach var
= “tuser”, items = “list”>
${tuser.name} //直接用EL表达式即可
<c:out value = “${tuser.name}”> //使用<c:out>标签打印
</c:forEach>
这两种方法在原理上是一样的。
b.关于var的疑问
我们知道EL表达式只能取jsp 4个隐藏对象的值,那么如何去这里的”tuser”呢。查看JSTL1.2源码得到var 是把这个变量定义在pageScope中,并且作用域为在<c:forEach>标签中。
2.<c:if>
语法:
1、无body的情况
<c:if test=”testCondition”
var=”varName” [scope=“{page|request|session|application}”]/>
2、有body的情况
<c:if
test=”testCondition” var=”varName”
[scope=“{page|request|session|application}”]>
Body内容
</c:if>
3.<c:choose>
它是用于条件选择,和<c:when>,<c:otherwise>一起使用,它的条件选择是排斥性的,相当于jsp中的<%switch(i){case 0: … case 1:… default :}%>,也可以完成<%if{}…else if{}….else if{}
else{} %>的功能
语法:
<c:choose>
Body内容(<c:when>,<c:otherwise>)
</c:choose>
注意:它的body内容只能是由以下的元素组成:
(1) 空格;
(2) 0个或多个<c:when>子标签,<c:when>必须在<c:otherwise>子标签之前出现;
(3) 0个或多个<c: otherwise >子标签
<c:when> 它是<c:choose>的一个分支
语法:
<c:when test=”testCondition”>
Body内容
</c:when>
注意:它有两个限制:
(1) 必须以<c:choose>作为它的父标签
(2) 必须在<c:otherwise>标签之前出现
<c:otherwise>他代表了<c:choose>的最后选择相当于jsp的<%switch(i){case 0: … case 1:… default :}%> 中的default语句。
语法:
<c:otherwise>
Conditional block
</c:otherwise>
它的使用有两个限制:
(1) 必须以<c:choose>作为它的父标签;
(2) 必须以<c:choose>的最后分支方式出现;
4.<c:out>
语法:
没有BODY的时候
<c:out value=”value” [escapeXml]=”{true|false}” [default=”defaultValue”]/>
有BODY的时候
<c:out value=”value” [escapeXml]=”{true|false}”
>
这里是BODY,可以是任何合法的jsp或者是html代码。
</c:out>
注意:escapeXml的作用是是否将代码交给xml解析器解释,true为交给xml解析器解释,false为交给浏览器解释。
5.<c:set>
这个标签用于在某个范围(page,request,session,application)里面设置特定的值(默认为page),或者设置某个已经存在的javabean的属性。类似于<%request.setAttribute(“name”,value)%>
语法:
(1)使用value属性设置一个特定范围里面的属性:
<c:set value=”value” var=”varName” [scope=
“{page|request|session|application}”]/ >
(2)使用value属性设置一个特定范围里面的属性,带有BODY:
<c:set value=”value” var=”varName” [scope=
“{page|request|session|application}”] >
Body content
</c:set>
(3)设置某个特定对象的一个属性:
<c:set
value=”value” target=”target” property=”propertyName”/ >
(4)设置某个特定对象的一个属性, 带有BODY:
<c:set value=”value” target=”target” property=”propertyName”
>
Body content
</c:set>
6. <c:remove>
它的作用是删除某个变量或者属性。类似于<%session.removeAttribute(“name”)%>
语法:
<c:remove
var=”varName” [scope= “{page|request|session|application}”]/ >
7. <c:catch>
它的作用是捕捉由嵌套在它里面的标签所抛出来的异常,类似于<%try{}catch{}%>语法:
<c:catch
[var=”varName”]>nested actions</c:catch>
注意:
查看源码得这里的catch捕获的就是Throwable接口,并把这个捕获的异常的对象,存入varName,范围是pageScope。
8. <c:import>
导入一个url的资源,相当于jsp 中的<jsp:include page=”path”>标签,同样也可以把参数传递到被导入的页面。
语法:
a、资源的内容使用string对象向外暴露
<c:import url=”url” [context=”context”]
[var=”varName”]
[scope=”{page|request|session|application}”]
[charEncoding=”charEncoding”]>
Optional body content for <c:param>
subtags
</c:import>
b、资源的内容使用redirect对象向外暴露
<c:import url=”url” [context=”context”]
varReader=”varReaderName”
[charEncoding=”charEncoding”]>
Body content where varReader is consumed
by another action
</c:import>
9. <c:redirect>
把客户的请求发送到另一个资源,相当于jsp中的<% request.sendRedirect(“other.jsp”)%>或者servlet中的RequestDispatch.forward(“other.jsp”)的功能。
语法:
a、没有body的情况
<c:redirect url=”value” [context=”context”]/>
b、有body,在body 中查询指定的参数
<c:redirect url=”value” [context=”context”]>
<c:param> subtags
</c:redirect>
10.<c:url>
用于构造URL,主要的用途是URL的重写。
语法:
a、没有body的情况
<c:url value=”value” [context=”context”]
[var=”varName”]
[scope=”{page|request|session|application}”]/>
b、有body ,并在body 中有重写的参数
<c:url value=”value” [context=”context”]
[var=”varName”] [scope=”{page|request|session|application}”]>
<c:param />
</c:url>
11. <c:param>
它是在<c:import>,<c:redirectt>,<c:url>中添加请求的参数。和一般的参数没什么区别。
语法:
a、参数的值使用value属性指定
<c:param name=”name” value=”value”/>
b、参数的值在body 中指定
<c:param name=”name”>
参数值
</c:param>
分享到:
相关推荐
**JSTL(JavaServer Pages Standard Tag Library)学习大全** JSTL是JavaWeb开发中的一个强大工具,它提供了一套标准的标签库,用于简化HTML或XML页面上的JavaServer Pages(JSP)代码。本资源集合包含了丰富的JSTL...
4. **更好的维护性**:JSTL与Servlet API解耦,使得升级和维护更加简单。 **JSTL的学习路径:** 1. **了解核心标签**:包括`<c:if>`, `<c:choose>`, `<c:when>`, `<c:otherwise>`, `<c:forEach>`, `<c:forTokens>`...
**JSTL标签详解** JavaServer Pages Standard Tag Library (JSTL) 是一套标准的标签库,用于简化JSP页面的编程,使得开发者能够使用标签而不是脚本来处理常见任务。在JSTL中,`EL(Expression Language)`是用于...
从JSP 1.1规范开始,JSP就支持在JSP中使用自定义标签了,自定义标签的广泛使用造成了程序员重复定义,这样就促成了JSTL(JavaServer Pages Standard Tag Library)的诞生。
#### 一、JSTL的起源与重要性 JSTL,即JavaServer Pages Standard Tag Library,是在2002年由Sun Microsystems制定的一系列标准标签库,旨在为JSP开发者提供一套标准化、可重用的标签集,从而简化JSP页面的开发过程...
本篇将详细讲解JSTL的基本概念、核心组件以及通过"jstl练习实例"进行的学习要点。 一、JSTL简介 JSTL是由Apache软件基金会的Jakarta项目维护的一个开源库,它提供了多种预定义的标签,用于处理常见的JSP任务,如...
### JSTL-Core标签库详解 #### 一、JSTL概述 JSTL(JavaServer Pages Standard Tag Library,JavaServer页面标准标签库)是一种专为简化JavaServer Pages(JSP)开发而设计的标准标签库。它由Apache的Jakarta项目...
jstl文档学习jstl文档学习jstl文档学习
总之,"完全用JSTL实现的增删改查与登陆"项目是一个学习JSTL的好材料,通过它,开发者可以掌握如何使用JSTL标签进行Web开发,理解JSTL如何简化JSP页面的编写,以及如何与EL协同工作,提高代码的可读性和可维护性。
在Java Web开发中,`javax.servlet.jsp.jspl.core.ConditionalTagSupport`是JSTL(JavaServer Pages Standard Tag Library)库中的一个核心类,用于支持条件标签的实现。当你遇到`java.lang.NoClassDefFoundError: ...
JSTL主要包含五个核心组件:Core、XML、Format、I18N和Functions。 **1. Core组件** Core组件是JSTL最基础的部分,包含了处理页面流程控制、URL操作、条件判断等常用功能的标签。例如: - `<c:if>`和`<c:choose>`...
描述中提到,`jstl.jar` 是用于Java Web开发的标准标签库,这意味着它可以与其他Java Web技术,如Servlet、JSP、JSF等协同工作,使得开发更加高效。在实际应用中,通常会将`jstl.jar` 放入Web应用的`WEB-INF/lib` ...
### JSTL 标记学习教程:深入了解与实践 #### JSTL——简化JSP页面开发的利器 JSTL(JavaServer Pages Standard Tag Library)是JSP标准标记库,为网页开发者提供了一系列预定义的标签,用于简化JSP页面的开发过程...
### Java JSTL 学习详解过程 #### JSTL简介 JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是一组由 Sun Microsystems 提供的标准标签库,它允许开发者在 JSP 页面中使用预定义的...
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> ``` 然后可以在页面中使用这些标签,如: ```jsp ${list}" var="item"> ${item.name} ``` **EL的介绍**: EL全称为Expression Language,它是...
**JSTL(JavaServer Pages Standard Tag Library)插件与底层源码解析** JSTL是Java Web开发中的一种标准标签库,它提供了一系列的标签用于处理常见的Java Servlet和JSP任务,如迭代、条件判断、XML处理等,极大地...
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 jstl标准标签库的三个jar包:jstl-1.2、jstl-api-1.2、jstl-impl-1.2。 ...
核心标签库:http://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。 格式化标签库:http://java.sun.com/jsp/jstl/fmt 用来格式化显示数据的工作,比如:对...
**正文** JSTL(JavaServer Pages Standard Tag Library,JavaServer Pages 标准标签库)是Java Web开发中常用的一个库,它...通过合理使用JSTL标签,开发者可以将业务逻辑与表现层分离,使得Web应用结构更加清晰。