1. 一般标签
在JSTL中,一般标签主要用在输出、设置变量值和错误处理等,这些是JSTL中使用最多的标签
1). <c:out value=”” escapeXml=”true|false” default=”defValue”> 计算一个表达式的值,然后把计算的结果输出到当前的JspWriter对象。调用的结果和Servlet中out.println()语句效果一样,其中value是将要输出的表达式;escapeXml表示将<、> 、&、 ‘、 “等特殊的符号转换成实体代码;default表示如果value的值为空,那么将输出这里的默认值。注意<c:out>可以有Body,这里的Body可以是HTML或者是JSP。例如:<c:out value=”${user.name}”>,(如果要使用表达式,那么这里的JSTL的版本必须是1.1以上)
2). <c:set var=”” value=”” scope=”” target=”” property=””> 这个标签用于在某个范围中使用某个名字设定特定的值,或者设置某个已经存在的JavaBean对象的属性,这其实就相当于<% request.setAttribute(“name”, “value”); %>。其中var表示这个属性的名字,它相当于在标签中定义了一个变量,并且这个变量只能在标签中使用;value表示将要计算的表达式;scope表示属性的有效范围;target表示将要设置属性的对象,它必须是JavaBeans或java.util.Map对象;property表示待设置的Target对象中的属性名字,比如在JavaBean中有个name属性,提供了setUserId方法,那么这里的property就是userId。例如:a. <c:set var=”flag” value=”yes” scope=”request”/> b. <c:set var=”price” scope=”session”>body content</c:set> c. <c:set value=”liky” target=”user” property=”name”/> d. <c:set target=”user” property=”pwd” >body content</c:set>
3). <c:remove var=”flag” scope=”page”> 这个标签用于删除某个变量或者属性。其中scope表示这个参数所在的范围,如果不指定范围,那么将从page,request,session,application中依次搜索这个参数,如果还是没有则不做任何动作;var表示待删除的参数的名字,这个名字可以使在<c:set/>定义,也可以是在someScope.setAttribute(“varName”, “varValue”)中定义,相当于pageContext.removeAttribute(varName, scope);
4). <c:catch var=””> 这个标签用于捕获由嵌套在它里面的标签抛出的异常对象(java.lang.Throwable),相当于<% try {} catch () {} %>。其中var表示标识这个异常的名字,它是一个标签变量。例如:<c:catch var=”error”> <% Integer.parse(“abcd”)%> </c:catch>
2. 条件标签
在JSTL中,条件标签能完成条件判断和多个条件选择等功能。
1). <c:if test=”” var=”” scope=””> 用于进行条件判断,如果它的test属性true,那么就计算它的body。其中test表达式的条件,相当于if(test) 中的条件;var表示这个语句的名字;scope表示变量的作用范围。这个标签相当于<% if (test) {body} %>;例如:<c:if test=”8>5” var=”tif” scope=”page”>body</c:if>
2). <c:choose>body</c:choose> 这个标签用于条件选择,它和<c:when>以及<c:otherwise>一起使用。它的条件选择是排斥的,相当于:<% swith i {case 0: break; case 1: break;},也可以完成<% if() else if {} else {} %>这样的多重条件判断语句的功能。注意这里body只能由0个或多个<c:when>子标签,<c:otherwise>标签之前出现;0个或者多个<c:otherwise>子标签。
3). <c:otherwise > 这个标签表示<c:choose>的最后选择。相当于<% swith () {case: break; default: …}中default语句;或者是<% if() else if {} else {} %>这样的语句中的最后的else语句。例如:<c:choose><c:when test=”${count > 10}”><c:set var=”num” value=”10”/></c:when><c:otherwise><c:set var=”num” value=”20”></c:otherwise></c:choose>
3. 迭代标签
在JSTL中,迭代标签支持循环提取一个集合中的数据。
1). <c:forEach var=”” items=”” varStatus=”” begin=”” end=”” step=””></c:forEach> 这个标签是我们经常用的用于迭代一个集合的标签,功能十分强大。其中var表示迭代的参数名字,它是标签参数,在其他标签中通过它来引用这个标签中的内容;items表示要迭代的集合,注意这里的集合是指Collection、Arrays、Iterator、Map、String、和Enumeration等这样的表示集合的类;varStatus表示迭代的状态,可以访问迭代自身的信息;begin表示如果指定了items,那么就从items的index[begin]开始迭代,并且items的第一个元素的索引是0;如果没有指定items,那么就从指定的index开始迭代;end表示如果指定了items,那么就在items的index[end]结束迭代;如果没有指定items,那么就在指定的index结束迭代;step表示迭代的步长值,默认为1。相当于<% for(int i=0; i<length; i++) {body} %>语句中的for循环的功能,只是这里更容易使用。例如:<c:forEach var=”user” items=”${users}” > <c:out value=”${user.name}”/><br><c:out value=”${user.pwd}”/><br></c:forEach>
2). <c:forTokens var=”” items=”” varStatus=”” delims=”” begin=”” end=”” step=””></c:forTokens> 这个标签专门用于处理TokenString的迭代,可以在delims中指定一个或多个分隔符(delimiters),其他和<c:forEach>是相似的。例如:<c:set var=”countries” value=”中国;美国;加拿大;英国;日本”<c:forTokens var=”nation” delims=”;” items=”${countries}”><c:out value=”${nation}”/><br></c:forTokens>
4. URL标签
URL标签是指页面导航、页面重定向、资源获得及参数传递等方面的标签。
1). <c:import url=”” context=”” var=”” scope=”” charEncoding=”” varReader=””> 这个标签可以导入一个资源相当于<jsp:include page=””/>。当然也可以将参数传递过去。
<c:import url="login.jsp">
<c:param name="name">liky</c:param>
<c:param name="pass">redhat</c:param>
</c:import>
其中url待导入资源的url,可以是相对路径或者是绝对路径,并且可以导入其他主机上的资源;context表示当使用相对路径访问外部context资源时,context指定了这个资源的名字;var为参数的名字;scope为var参数的作用范围;charEncoding输入资源的字符编码;varReader这个参数的类型为Reader,用于读取资源
<c:import url="source.txt" charEncoding="ISO8859-1" varReader="reader">
<c:out value="${reader}"/>
</c:import>
2). <c:redirect url=”” context=””> 这个标签是用于重定向到另外一个资源。其中url表示待定向资源的URL,相对路径或者绝对路径;context当使用相对路径访问外部context资源时,context制定了这个资源的名字。相当于<% request.sendRedirect(“next.jsp”);%>或者是Servlet中的RequestDispatcher.forward()语句的功能。例如:
<c:redirect url="login.jsp">
<c:param name="name">liky</c:param>
<c:param name="pass" value=”redhat”/>
</c:redirect>
3). <c:url value=”” context=”” var=”” scope=””> 这个标签用于构造URL,主要是重写URL地址。其中value表示URL的值;context表示当使用相对路径访问外部context资源时,context指定了这个资源的名字;var表示标识这个URL的变量;scope表示这个变量作用范围。例如:<c:url var=”footer” value=”footer.jsp” scope=”page”>
4). <c:param name=”” value=””> 这个标签用于在<c:import>、<c:url>、<c:redirect>中添加请求的参数。它和一般的参数标签没有什么区别。其中name表示参数的名字;value参数的值。要注意的是参数的值既可以用value指出,也可以在标签体中指出。例如:同上。
5. 一般标签示例
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<jsp:useBean id="user" class="com.bean.UserBean" scope="page" />
<jsp:setProperty name="user" property="name" value="猛牛" />
<jsp:setProperty name="user" property="pwd" value="拴拴你" />
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试标准标签库</title>
</head>
<body>
user.name:<c:out value="${user.name}" escapeXml="true" default="liky" /><br>
user.pwd:<c:out value="${user.pwd}" /><br>
<c:set target="${user}" property="name" value="摆渡" />
<c:out value="${user.name}" escapeXml="true" default="liky" /><br>
<c:set var="flag" scope="page" value="${user.pwd}"/>
flag: <c:out value="${flag}"/><br>
<c:remove var="flag" scope="page"/>
flag: <c:out value="${flag}"/><br>
<c:catch var="error">
<%
Integer.parseInt("abc");
%>
</c:catch>
<c:out value="${error}"/>
</body>
</html>
6. 条件标签示例
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试条件标签</title>
</head>
<c:set var="num" value="40" scope="page" />
<c:set var="bgcolor" value="#000000" scope="page" />
<c:if test="${num<50}" var="testCause" scope="page">
<c:out value="${testCause}" />
</c:if>
<c:choose>
<c:when test="${num==10}">
<c:set var="bgcolor" value="red" />
</c:when>
<c:when test="${num==40}">
<c:set var="bgcolor" value="blue" />
</c:when>
<c:otherwise>
<c:set var="bgcolor" value="purple" />
</c:otherwise>
</c:choose>
<body bgColor="${bgcolor }">
</body>
</html>
7. 迭代标签
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page import="com.bean.*,java.util.*"%>
<%
int[] arr = new int[10];
for (int i = 0; i < 10; i++) {
arr[i] = i;
}
pageContext.setAttribute("arr", arr);
List list = new ArrayList();
for (int i = 0; i < 10; i++) {
UserBean user = new UserBean();
user.setName("Guest" + i);
user.setPwd("00" + i);
list.add(user);
}
pageContext.setAttribute("list", list, pageContext.PAGE_SCOPE);
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试迭代标签</title>
</head>
<body>
<c:out value="开始迭代数组:" />
<br>
<c:forEach var="ar" items="${arr}">
<c:out value="${ar}" />
<br>
</c:forEach>
<c:out value="开始迭代列表:" />
<br>
<c:forEach var="lst" items="${list}">
<c:out value="${lst.name}" />
<c:out value="${lst.pwd}" />
<br>
</c:forEach>
<br>
</body>
</html>
/*=============== 测试迭代Map===============*/
<%@ page contentType="text/html; charset=GBK" import="java.util.Map"%>
<%@ page import="java.util.HashMap"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
Map map = new HashMap();
map.put("百度", "http://www.bai.com");
map.put("雅虎", "http://www.yahoo.com.cn");
map.put("谷歌", "http://www.google.com");
out.println(map.get("谷歌"));
request.setAttribute("map", map);
%>
<html>
<head>
<title>使用forEach标签迭代Map</title>
</head>
<body>
<table border="1">
<CAPTION><c:out value="输出Map中所有的值:" /></CAPTION>
<c:forEach items="${map}" var="mymap">
<tr>
<td><c:out value="${mymap.key}" /></td>
<td><c:out value="${mymap.value}" /></td>
</tr>
</c:forEach>
</table>
<table border="1">
<CAPTION><c:out value="输出Map中特定的值:" /></CAPTION>
<c:forEach items="${map}" var="mymap">
<tr>
<c:if test="${mymap.key=='谷歌}">
<td><c:out value="${mymap.key}" /></td>
<td><c:out value="${mymap.value}" /></td>
<br>
</c:if>
</tr>
</c:forEach>
</table>
</body>
</html>
8. URL标签示例
/*===========这里测试import标签============*/
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试import标签</title>
</head>
<body>
<!-- 这里是导入一个资源,并且将参数传递过去 -->
<c:import url="login.jsp">
<c:param name="name">liky</c:param>
<c:param name="pass">redhat</c:param>
</c:import>
<!-- 这里是导入一个资源,并且并且读取这个资源 -->
<c:import url="source.txt" charEncoding="ISO8859-1" varReader="reader">
<c:out value="${reader}"/>
</c:import>
</body>
</html>
/*============这里测试redirect标签============*/
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试重定向标签</title>
</head>
<body>
<c:redirect url="login.jsp">
<c:param name="name">liky</c:param>
<c:param name="pass" value="redhat" />
</c:redirect>
</body>
</html>
/*==============这里测试url标签 ===============*/
<%@ page contentType="text/html;charset=GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试URL标签</title>
</head>
<body>
<c:url value="login.jsp" var="reg" scope="page">
<c:param name="name" value="liky" />
<c:param name="pass" value="wahaha" />
</c:url>
<c:redirect url="${reg}" />
</body>
</html>
分享到:
相关推荐
**JSP核心标签库的使用详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码以实现服务器端的交互功能。JSTL(JSP Standard Tag Library),即JSP标准标签库,是为了解决JSP中...
JSP核心标签库(CTL)是JSP 2.0引入的标准标签库,它包含了用于简化页面逻辑和输出内容的标签。这些标签遵循JSTL (JavaServer Pages Standard Tag Library) 规范,无需编写Java脚本,使得代码更清晰,更易于维护。 ...
C标签库(Core Tag Library)是JSTL中的核心部分,包含了用于基本操作的标签,如迭代、条件判断、输出文本、URL处理等。 1. **引入C标签库** 在JSP页面中使用C标签库之前,需要首先引入JSTL库和C标签库。这通常...
### JSTL(JSP标准标签库):增强JSP页面功能的关键技术 JSTL,全称为JSP Standard Tag Library(JSP标准标签库),是JavaServer Pages(JSP)技术的重要补充,旨在简化JSP页面的开发,提供了一系列预定义的、可...
1. **核心标签库**(Core Tag Library):提供了一系列基本操作,如条件判断、循环、输出、变量设置等。 - **URI**: `http://java.sun.com/jsp/jstl/core` - **前缀**: `c` 2. **I18N格式标签库**...
C标签库是JSTL中的一个核心组件,主要用于控制流操作,例如循环、条件判断等。** **1. JSTL的组成:** JSTL由以下几个主要的标签库组成: - **Core(C)库**:包含了用于控制流程的基本标签,如`<c:if>`、`...
**JSP标准标签库(JSTL)**是Java服务器页面(JSP)技术的一个重要扩展,它提供了一组预定义的标签,用于简化JSP页面的开发和维护。JSTL的主要目标是减少在JSP中使用脚本元素,从而提高代码的可读性和可维护性。 ...
在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现数据列表的显示,以及涉及到的相关技术。 首先,`UserListTag.java` 是自定义...
在JSP标准标签库中,主要有五个核心标签库: 1. **Core库**:这是最基础的库,包含了一系列与HTML元素对应的标签,如`<c:set>`(设置变量)、`<c:out>`(安全地输出变量)、`<c:if>`(条件判断)、`<c:choose>`、`...
1. **核心标签库** - `http://java.sun.com/jsp/jstl/core`:提供基本的控制结构,如输出、设置变量、异常处理、流程控制等。 - `<c:out>`:用于显示数据内容,支持默认值和是否转义XML特性。 - `<c:set>`:用于...
JSP自带的核心标签库中,包含了许多用于简化Web开发的标签。这些标签极大地提高了开发效率,并且帮助开发者避免了在JSP页面中直接编写Java代码的复杂性。核心标签库中的标签通常分为不同的类别,包括动作标签、指令...
核心标签库提供了处理JSP页面基础操作的功能,如循环、条件判断、URL重写、页面导航等。例如,`<c:forEach>`用于遍历集合,`<c:if>`用于执行条件判断,`<c:set>`用于设置变量,`<c:redirect>`用于实现页面重定向。 ...
这个库文件主要包括以下几个核心标签库: 1. **fmt**: 提供日期、时间、数字和消息格式化功能。 2. **fn**: 提供一些通用的函数,如字符串操作、数组和集合操作等。 3. **i18n**: 支持多语言环境,实现国际化和本地...
1. **导入STL库**:在JSP页面头部添加库引用,例如`<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>`,这里的"c"是自定义的前缀,uri是STL的核心标签库路径。 2. **使用标签**:在页面中根据需要...
1. **核心标签库(Core)**:提供了处理数据、流程控制等功能的标签。 - URI前缀:`http://java.sun.com/jstl/core` - 标签名前缀:`c:` 2. **XML处理标签库(XML processing)**:用于解析和操作XML文档。 - ...
JSTL的核心标签库通过减少JSP页面中的脚本元素,提高了代码的可维护性和可读性。使用JSTL,开发者可以更专注于业务逻辑,而非底层的Java语法。在实际项目中,配合Expression Language (EL)表达式,可以进一步提高...
JSTL的核心标签库提供了强大的功能,极大地提高了JSP页面的可读性和可维护性。通过合理使用这些标签,开发者可以避免过多的脚本语言代码,使得JSP页面更加简洁,符合MVC设计模式,提升应用的性能和扩展性。在实际...
**JSP C标签引用**是JavaServer Pages(JSP)技术中的一种扩展,它允许开发者使用自定义标签库(Custom Tag Libraries),特别是JSP Standard Tag Library(JSTL)。JSTL是Java社区为了简化JSP开发,提高代码可读性...