`
ufopw
  • 浏览: 160391 次
  • 性别: 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学习能有所帮助

    jsp核心标签的使用方法

    jsp中常用的核心标签的用法,以及常用函数的用法

    JSTL(jsp标准标签库)

    JSTL jsp标准标签库 word文档

    jsp标准标签库(各种标准标签库)

    本资源主要介绍了标准标签库,包括核心标签、xml标签及格式化标签,数据库标签和函数标签

    jsp页面java标签库

    java 自带的jsp标签核心库,部分日期格式化标签 数字格式化标签

    JSP 标准标签库(JSTL)

    JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供...

    Servlet与JSP核心编程

    《Servlet与JSP核心编程(第2卷 第2版)》在第l卷的基础上,广泛涉及自定义标签库、过滤器、声明式安全、JSTL和Struts等主题,并沿袭深受读者喜爱的写作风格,通过完整、有效、资料丰富的程序来演绎目前最流行的技术和...

    JSTL标签库

    在告别modle1模式开发应用程序后,人们开始注重软件的分层设计,不希望在jsp页面中出现java逻辑代码,同时也由于自定义标签的开发难度较... 核心标签库  I18N格式化标签库  SQL标签库  XML标签库  函数标签库

    JSP 标准标签库(JSTL)

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。 JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL...

    jsp 标准标签库简析

    一、JSTL简介 引入:在JSP以及javaBean中 ,当我们在网页中使用循环,或者使用对象方法连接数据库时,我们都不可避免的需要使用到jsp的脚本编制元素,其中嵌有大量的java代码,现在开发者想尽... 核心标签库 2. SQL标

    java jsp 自定义标签开发

    java jsp 自定义标签开发 在JSTL提供了四个标签库(核心标签库、国际化标签库、数据库标签库和XML标签库)

    Jsp的标签文件

    JEE开发的标签库文件,便于web的开发与设计,希望这份资源对你有用!

    jstl标签库介绍.zip|jstl标签库介绍.zip

    总结了一些常用的jstl标签,jstl标准标签库,jstl-core核心标签库,jstl-functions标签库,对于学习jstl有所帮助

    java_web_第7章_JSTL.ppt

    10.1 JSP标准标签库 10.2 核心标签库 10.3 其他JSTL标签库 10.4 使用标签文件 10.5 小 结

    JSTL 以及自定义标签开发相关

    JSTL 以及自定义标签开发相关 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out、set、remove、catch 2.流程控制标签:if、choose、when、otherwise 3.循环标签:forEach、forTokens 4.URL...

    JavaServer Pages标准标签库

    • 用JSTL核心标签替换Struts逻辑标签。 • 用消息格式标签替换访问消息储存的scriptlet。 • 用通过JSTL SQL标签对数据库的直接调用替换JavaBean组件数据库helper。对于大多数应用程序来说,最好将对数据库的调用...

    JSP网络编程学习笔记源代码 part2

    第五篇为“标签语言和表达式语言”,主要讲述JSP的标签技术,JSP提供的标准标签库JSTL的用法及用户如何自定义自己的标签库;第六篇为“Web应用高级专题”,主要讲述Servlet过滤器、JSP异常处理、JSP日志、认证和安全...

    jsp应用开发与实践配书源码

    全书共分16章,内容包括Web应用开发概述、客户端应用技术基础、搭建JSP网站开发环境、Java语言基础、JSP基本语法、JSP的内置对象、JavaBean技术、Servlet技术、数据库应用开发、EL表达式、JSTL核心标签库、JSP操作...

Global site tag (gtag.js) - Google Analytics