`
ufopw
  • 浏览: 163636 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

JSP核心标签库

阅读更多
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核心标签库的使用详解** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码以实现服务器端的交互功能。JSTL(JSP Standard Tag Library),即JSP标准标签库,是为了解决JSP中...

    jsp核心标签的使用方法

    JSP核心标签库(CTL)是JSP 2.0引入的标准标签库,它包含了用于简化页面逻辑和输出内容的标签。这些标签遵循JSTL (JavaServer Pages Standard Tag Library) 规范,无需编写Java脚本,使得代码更清晰,更易于维护。 ...

    JSP 标准标签库(c标签库)

    C标签库(Core Tag Library)是JSTL中的核心部分,包含了用于基本操作的标签,如迭代、条件判断、输出文本、URL处理等。 1. **引入C标签库** 在JSP页面中使用C标签库之前,需要首先引入JSTL库和C标签库。这通常...

    JSTL(jsp标准标签库)

    ### JSTL(JSP标准标签库):增强JSP页面功能的关键技术 JSTL,全称为JSP Standard Tag Library(JSP标准标签库),是JavaServer Pages(JSP)技术的重要补充,旨在简化JSP页面的开发,提供了一系列预定义的、可...

    JSP标准标签库

    1. **核心标签库**(Core Tag Library):提供了一系列基本操作,如条件判断、循环、输出、变量设置等。 - **URI**: `http://java.sun.com/jsp/jstl/core` - **前缀**: `c` 2. **I18N格式标签库**...

    JSTL 标签库 jsp C 标签库

    C标签库是JSTL中的一个核心组件,主要用于控制流操作,例如循环、条件判断等。** **1. JSTL的组成:** JSTL由以下几个主要的标签库组成: - **Core(C)库**:包含了用于控制流程的基本标签,如`&lt;c:if&gt;`、`...

    jsp标准标签库

    **JSP标准标签库(JSTL)**是Java服务器页面(JSP)技术的一个重要扩展,它提供了一组预定义的标签,用于简化JSP页面的开发和维护。JSTL的主要目标是减少在JSP中使用脚本元素,从而提高代码的可读性和可维护性。 ...

    jsp自定义标签库实现数据列表显示

    在JavaServer Pages (JSP) 开发中,自定义标签库是提高代码可重用性和模块化的重要手段。本文将详细讲解如何利用JSP自定义标签库实现数据列表的显示,以及涉及到的相关技术。 首先,`UserListTag.java` 是自定义...

    jsp标准标签库的使用

    在JSP标准标签库中,主要有五个核心标签库: 1. **Core库**:这是最基础的库,包含了一系列与HTML元素对应的标签,如`&lt;c:set&gt;`(设置变量)、`&lt;c:out&gt;`(安全地输出变量)、`&lt;c:if&gt;`(条件判断)、`&lt;c:choose&gt;`、`...

    JSP标准标签库实例

    1. **核心标签库** - `http://java.sun.com/jsp/jstl/core`:提供基本的控制结构,如输出、设置变量、异常处理、流程控制等。 - `&lt;c:out&gt;`:用于显示数据内容,支持默认值和是否转义XML特性。 - `&lt;c:set&gt;`:用于...

    jsp页面java标签库

    JSP自带的核心标签库中,包含了许多用于简化Web开发的标签。这些标签极大地提高了开发效率,并且帮助开发者避免了在JSP页面中直接编写Java代码的复杂性。核心标签库中的标签通常分为不同的类别,包括动作标签、指令...

    JSTL(JSP标准标签库)介绍.doc

    核心标签库提供了处理JSP页面基础操作的功能,如循环、条件判断、URL重写、页面导航等。例如,`&lt;c:forEach&gt;`用于遍历集合,`&lt;c:if&gt;`用于执行条件判断,`&lt;c:set&gt;`用于设置变量,`&lt;c:redirect&gt;`用于实现页面重定向。 ...

    jsp标签库jar

    这个库文件主要包括以下几个核心标签库: 1. **fmt**: 提供日期、时间、数字和消息格式化功能。 2. **fn**: 提供一些通用的函数,如字符串操作、数组和集合操作等。 3. **i18n**: 支持多语言环境,实现国际化和本地...

    jsp标准标签库stl

    1. **导入STL库**:在JSP页面头部添加库引用,例如`&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gt;`,这里的"c"是自定义的前缀,uri是STL的核心标签库路径。 2. **使用标签**:在页面中根据需要...

    jsp标准标签库使用指南

    1. **核心标签库(Core)**:提供了处理数据、流程控制等功能的标签。 - URI前缀:`http://java.sun.com/jstl/core` - 标签名前缀:`c:` 2. **XML处理标签库(XML processing)**:用于解析和操作XML文档。 - ...

    JSTL核心标签库的jar包

    JSTL的核心标签库通过减少JSP页面中的脚本元素,提高了代码的可维护性和可读性。使用JSTL,开发者可以更专注于业务逻辑,而非底层的Java语法。在实际项目中,配合Expression Language (EL)表达式,可以进一步提高...

    JSTL 核心标签库 使用

    JSTL的核心标签库提供了强大的功能,极大地提高了JSP页面的可读性和可维护性。通过合理使用这些标签,开发者可以避免过多的脚本语言代码,使得JSP页面更加简洁,符合MVC设计模式,提升应用的性能和扩展性。在实际...

    JSP C标签引用

    **JSP C标签引用**是JavaServer Pages(JSP)技术中的一种扩展,它允许开发者使用自定义标签库(Custom Tag Libraries),特别是JSP Standard Tag Library(JSTL)。JSTL是Java社区为了简化JSP开发,提高代码可读性...

Global site tag (gtag.js) - Google Analytics