JSTL的核心标签库主要包括:表达式操作、流程控制、迭代操作和URL操作。
以下是JSTL常用标签的用法总结:
一、表达式操作
1.<c:out>
作用:用于显示数据的内容。
语法1:没有本体内容
<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />
语法2:有本体内容
<c:out value="value" [escapeXml="{true|false}"]>
default value
</c:out>
属性说明:
value:需要显示出来的值。
default:如果value的值为null时,则显示default指定的值。
escapeXml:是否转换特殊字符,默认为true。即默认会将<、>、’、” 和 & 转换为 <、>、'、"和&。如果设为 false,则不进行转换。
2.<c:set>
作用:用于将变量的值存储在JSP范围中或JavaBean的属性中。
语法1:将value的值存储在范围为scope的varName变量中
<c:set value="value" var="varName" [scope="{page|request|session|application}"] />
语法2:将本体内容的数据存储在范围为scope的varName变量中
<c:set var="varName" [scope="{page|request|session|application}"] >
...本体内容
</c:set>
语法3:将value的值存储在target对象的propertyName属性中
<c:set value="value" target="target" property="propertyName" />
语法4:将本体内容的数据存储在target对象的propertyName属性中
<c:set target="target" property="propertyName">
...本体内容
</c:set>
属性说明:
value:要被存储的值。
var:欲存入的变量名称。
scope:var变量的JSP范围。默认为page范围。
target:为一JavaBean或Map对象。
property:指定的target对象的属性。
3.<c:remove>
作用:移除变量。
语法:<c:remove var="varName" [scope="{page|request|session|application}"] />
属性说明:
var:要移除的变量。
scope:var变量所在的JSP范围,默认为page范围。
4.<c:catch>
作用:用于处理产生错误的异常情况,并将错误信息存储起来。
语法: <c:catch [var="varName"] >
...欲抓取错误的部分
</c:catch>
属性说明:
var:将错误信息存储在指定的变量中,可以通过该变量获取错误信息。
二、流程控制
1.<c:if>
作用:类似if判断语句,用于表达式判断。
语法1:没有本体内容
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"] />
语法2:有本体内容
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"] />
...本体内容
</c:if>
属性说明:
test:当该属性中的表达式运算结果为true,则会执行本体内容,为false则不执行,该标签必须要有test属性。
var:存储test的运算结果,为true或false。
scope:var变量的JSP范围。
2.<c:choose>、<c:when>、<c:otherwise>
作用:这三个标签必须组合使用,用于流程控制。
范例:
<c:choose>
<c:when test="${condition1}">
condition1为true
</c:when>
<c:when test="${ condition2}">
condition2为true
</c:when>
<c:otherwise>
condition1和condition2都为false
</c:otherwise>
</c:choose>
范例说明:当condition1为true时,会显示“condition1为true”;当condition1为false且condition2为true时,会显示“condition2为true”,如果两者都为false,则会显示“condition1和condition2都为false”。
注意:若condition1和condition2的运算结果都为true时,此时只会显示"condition1为true"。
限制说明:
a.<c:when>和<c:otherwise>标签必须在<c:choose>和</c:choose>之间使用。
b.在同一个<c:choose>中,<c:otherwise>必须是最后一个标签,且只能有一个<c:otherwise>标签。<c:when>可以有多个。
c.在同一个<c:choose>中,当所有<c:when>的test都为false时,才执行<c:otherwise>的本体内容。
三、迭代操作
1.<c:forEach>
作用:为循环控制,它可以将集合(Collection)中的成员循序浏览一遍。运作方式为当条件符合时,就会持续重复执行<c:forEach>的本体内容。
语法1:迭代一个集合对象中的所有成员
<c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] />
...本体内容
</c:forEach>
语法2:迭代指定次数
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
...本体内容
</c:forEach>
属性说明:
items:被迭代的集合对象。
var:存放当前指到的集合对象中的成员。
varStatus:存放当前指到的成员的相关信息。(index:当前指到的成员的索引;count:当前总共指到成员的总数;first:当前指到的成员 是否为第一个成员;last:当前指到的成员是否为最后一个成员)。
begin:迭代开始的位置,默认为0。
end:迭代结束的位置,默认为最后。
step:每次迭代的间隔数,默认为1。
范例:
<%
int atts[] = {1,2,3,4,5,6,7,8,9,10};
request.setAttribute("atts", atts);
%>
<c:forEach items="${atts}" var="item" begin="0" end="9" step="1" >
${item}</br>
</c:forEach>
此标签也可以用于普通的循环控制,与for循环一样。如:
<c:forEach begin="1" end="10" var="item" >
${item}</br>
</c:forEach>
2.<c:forTokens>
作用:用指定分隔符分隔一字符串,并迭代分隔后的数组。
语法: <c:forTokens items="stringOfTokens" delims="delimiters" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"] >
本体内容
</c:forTokens>
属性说明:
items:被分隔并迭代的字符串。
delims:用来分隔字符串的字符。
var:存放当前指到的成员。
varStatus:存放当前指到的成员的相关信息。(index:当前指到的成员的索引;count:当前总共指到成员的总数;first:当前指到的成员 是否为第一个成员;last:当前指到的成员是否为最后一个成员)。
begin:迭代开始的位置,默认为0。
end:迭代结束的位置,默认为最后。
step:每次迭代的间隔数,默认为1。
范例1:
<c:forTokens items="A,B,C,D,E" delims="," var="item" >
${item}
</c:forTokens>
用“,”号分隔字符串,并迭代输出分隔后的字符串数组,输出结果为“ABCDE”。
范例2:
<c:forTokens items="A,B;C-D,E" delims=",;-" var="item" >
${item}
</c:forTokens>
delims中指定了三个分隔符“,”、“;”和“-”,可见我们一次可以设定所有想当做分隔字符串用的字符。输出结果依然为“ABCDE”。
四、URL操作
1.<c:import>
作用:将其他静态或动态文件包含到本身JSP网页中。不但可以包含同一个web application下的文件,还可以包含其他web application或其他网站的文件。
语法: <c:import url="url" [var="varName"] [scope="{page|request|session|application}"] >
[<c:param name="paramName" value="paramValue"/>]
</c:import>
属性说明:
url:要包含至本身JSP网页的其他文件的URL。必选
var:将包含进来的其他文件以字符串的形式存放到指定的变量中。可选
scope:var变量的作用范围。可选
<c:param>:可选子标签,用于向包含进来的其他网页文件传递参数。
范例:
<c:import url="http://java.sun.com" >
<c:param name="test" value="1234" />
</c:import>
说明:当<c:import>标签中未指定var变量时,会直接将包含进来的其他网页文件内容显示出来,如果指定了var变量,则会将内容存放到var变量中,不显示。
2.<c:url>
作用:生成一个URL。
语法: <c:url value="url" [context="expression"] [var="name"] [scope="scope"]>
[<c:param name="expression" value="expression"/>]
</c:url>
范例1:
<a href="<c:url value=index.jsp'/>">index page</a>
在<a>超链接标签中生成一个URL,指向index.jsp。
范例2:
<c:url value="index.jsp">
<c:param name="keyword" value="${searchTerm}"/>
<c:param name="month" value="02/2003"/>
</c:url>
生成一个URL,并传递参数,生成的结果为index.jsp?keyword=*&month=02/2003,*代表传递的searchTerm的值。
3.<c:redirect>
作用:可以将客户端的请求从一个JSP网页导向到其他文件。
语法: <c:redirect url="url">
[<param name="paramName" value="paramValue">]
</c:redirect>
将请求导向URl指向的其他文件。
分享到:
相关推荐
### 二、JSTL常用标签 #### 1. `<c:out>` - 作用:安全地显示数据,避免XSS攻击。 - 语法: - 无本体内容:`[escapeXml="{true|false}"] [default="defaultValue"] />` - 有本体内容:`[escapeXml="{true|false}...
JSTL,全称JavaServer Pages Standard Tag Library,是Java Web开发中的一种标准标签库,它提供了一系列的标签来简化JSP页面中的编程逻辑。在本文中,我们将深入探讨JSTL的核心标签库,包括表达式操作、流程控制、...
以上便是JSTL中一些常用标签的介绍和示例。值得注意的是,在使用这些标签时,需要在JSP页面的顶部引入JSTL标签库。如:***"%>。这样才能够正确地使用JSTL提供的标签功能。JSTL标签库在JSP开发中非常实用,可以大大...
在这个“ssh框架需要的jar包汇总”中,我们看到的是一个基本的SSH开发环境所需的库文件集合,还包括了与MySQL数据库连接以及JSTL(JavaServer Pages Standard Tag Library)标签的支持。 首先,让我们逐一解析这些...
**DAO(Data Access Object)设计模式**是一种常用的设计模式,用于封装对数据库的所有访问。DAO类提供了对数据库操作的接口,隔离了业务逻辑层和数据访问层,使得代码更加模块化,易于维护。在JSP项目中,DAO通常...
SSH(Struts、Spring、Hibernate)笔试题与面试题汇总整理 SSH(Struts、Spring、Hibernate)是 Java EE 开发中常用的三个框架,它们之间可以组合使用,以提高开发效率和系统性能。下面是对 SSH 框架中 Struts2 ...
- jstl:JSP标准标签库,用于在JSP页面中执行控制逻辑。 - commons-beanutils,commons-collections,commons-lang:Apache Commons库,提供各种实用工具类。 这些JAR包是SSH框架正常运行的基础,开发者通常将...
12.5 JSTL核心标签库 12.6 网络留言板V6.0 第13章 Hibernate框架及其应用 13.1 Hibernate 基础知识 13.2 DataBase Explorer 透视图 13.3 Hibernate 应用实例 第14章 Spring框架及其应用 14.1 Spring 基础知识 ...
JSTL(JavaServer Pages Standard Tag Library)是标准标签库,简化了JSP页面的编写。会话跟踪是保持用户状态的重要机制,常用cookie和session实现。 综上,这些知识点涵盖了Oracle数据库管理、XML数据处理以及Java...
全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...
- **JSTL**:Java标准标签库,提供了一组通用的标签用于页面开发。 - **ActionForm**:用于封装用户输入的数据。 - **字段收集**:Struts框架提供了一种机制来收集表单字段。 - **上传文件**:Struts支持文件上传...
### Java面试问题汇总知识点 #### 1. Forward与Redirect的区别 - **Forward**:服务器端重定向,由服务器控制将请求转发到另一个资源。客户端浏览器地址栏不会改变,且只发送一次请求。这种方式效率较高,因为可以...
书中会详细阐述Servlet的生命周期、请求响应处理、会话管理,以及JSP的内置对象、EL表达式和JSTL标签库的使用。 接下来,书籍深入到Java EE的持久层技术,如JPA和Hibernate。JPA是Java Enterprise Edition的一部分...
5. 压缩文件可能包含一系列PPT,每个PPT可能专注于JSP的不同方面,如语法、生命周期、自定义标签、EL表达式、JSTL等。 6. 对于JSP初学者,遇到问题时,可以尝试联系提供者以获取帮助,或者与其他学习者交流,共同...