JSTL标签库总结

首先,来介绍一下JSTL标签库
     JSTL(jsp Standard Tog Libray,JSP标准标签库)标签库的使用是为了弥补HTML标签的不足,规范自定义标签的使用而诞生
jstl主要提供了5大类标签库,分别是:

一.核心标签库
1.为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作
2.核心标签库共有13个,从功能分为4类:
A.表达式控制标签:out标签,set标签,remove标签,catch标签
B.流程控制标签:if标签,choose标签,when标签,otherwise标签
C.循环标签:forEach标签,forTokens标签
D.URL操作标签:import标签,url标签,redirect标签
3.在JSP页面加入核心标签库的代码:

        <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4.简单介绍一下13个核心标签的使用
     1><c:out value="object" [escapeXml="true/false"] default="Object"/>
             核心标签库中最为基本的标签就是<c:out>,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的
        <%=表达式%>类似
         <c:out>中各属性的说明如下:
             value:可以指定一个字符串作为输出的内容,也可以指定为EL表达式
              escapeXml:类型为boolean,确定,<,>,&,',"等字符在结构的字符串中是否被转换成字符串实体代码,默认值是
                         true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按
                         照html标识符进行输出)
             default:默认值
       示例:(1)<c:out value="Hello World"/>
              <%
               String name="Tom";
               request.setAttribute("userName",name);
               out.println("<br>");
              %>
              <c:out value="${userName}"></c:out>
           (2)<c:out value="<B>hello world</B>"/><br>
              <c:out value="<B>hello world</B>" escapeXml="false"></c:out><br>
              &lt;B&gt; hello world &lt;B&gt;<br>
              <B> hello world!</B>
     2><c:set var="varName" value="varValue" [scope="page|request|session|application"]></c:set>
          set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.
         <c:set>中各属性的说明如下:
             value:该属性指定变量或者对象中某个属性的值,并且可以是EL表达式
             var:变量名称,value属性指定的值就保存在这个变量中
             scope:设置变量的有效范围,如果不设定,默认为page
       示例:(1)<c:set var="number" value="2"/>
                <c:out value="number的值为:${number}"/><br>
                <c:set var="number">2</c:set>
                <c:out value="number的值为:${number}"/><br>
            (2)<c:set var="userName" value="brain"/>
               <c:set var="number" value="${1+1}"/>
               <%
                    String userName=(String)pageContext.getAttribute("userName");
                    Long number=(Long)pageContext.getAttribute("number");
                %>
                <%=userName%>
                <%=number%>
    3><c:remove var="varName" [scope="page|request|session|application"]
        remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性
        <c:remove>中各属性的说明如下:
            var:需要删除的变量或者对象属性的名称
            scope:设置这个需要删除的变量的所在范围
        示例:(1)<c:set var="number" value="${1+1}" scope="page"/>
                 <c:out value="${pageScope.number}" default="No NUmber"/><br>
                 <c:remove var="number" scope="page"/>
                 <c:out value="${pageScope.number}" default="TWO"/><br>
    4><c:catch var="name">
            容易产生异常的代码
      </c:catch>
      <c:out value="${name1.message}"/>
        该标签用来吃力JSP页面中产生的异常,并存储异常信息
        示例:
            下面是使用JSTL标签进行错误捕捉:
            <c:catch var="exception">
                <%
                    out.println("10/0的高为:<br>");
                    out.println(10/0);
                    out.println("<br>");
                %>
            </c:catch>
            下面是对异常进行处理:<br>
            <c:out value="${exception.message}"></c:out>
    5><c:if test="条件1" var="name" [scope="page|request|session|application"]/>
        该标签同Java程序中的if作用相同
        <c:if>中各属性的说明如下:
            test:判断条件的表达式,返回条件为true或者false
            var:这个变量用于保存test条件表达式判断所返回的true或者false值(if条件执行后所得到的boolean值将要保存在
                    var变量中)
            scope:指定var变量所在的指定范围
        示例:
            <c:set var="number" value="3" scope="request"/>
            <c:if test="${number==1}">
                <c:out value="给定数字的值为1"></c:out>
            </c:if>
            <c:if test="${number==2}">
                <c:out value="给定数字的值为2"></c:out>
            </c:if>
            <c:if test="${number==3}">
                <c:out value="给定数字的值为3"></c:out>
            </c:if>
    6><c:choose>
            <c:when>AAA</c:when>
            <c:when>BBB</c:when>
            <c:otherwise>CCC</c:otherwise>
      </c:choose>
      示例:
          <c:set var="IDE" value="Eclipse"/>
          <c:choose>
              <c:when test="${IDE=='JBuilder'}">
                  <c:out value="你使用的工具是JBuilder"/>
              </c:when>
              <c:when test="${IDE=='Eclipse'}">
                  <c:out value="你使用的工具是Eclipse"/>
              </c:when>
              <c:when test="${IDE=='JCreator'}">
                  <c:out value="你是用的工具是JCreator"/>
              </c:when>
              <c:otherwise>
                    <c:out value="用记事本写代码"/>
              </c:otherwise>
            </c:choose>
    7><c:forEach var="name" items="collection" varStatus="StatusName" begin="begin" end="end"  
            step="step">
            具体内容
      </c:forEach>
          该标签根据循环条件遍历集合(Collection)中的元素
          <c:forEach>中各属性的说明如下:
              var:设置变量名,用于存储从集合中取出的元素
              items:指定要遍历的集合
              varStatus:设定变量名,该变量用于存放集合中元素的信息
              begin  end:用于指定遍历的起始位置和终止位置
              step:指定循环的步长
            循环标签属性说明:
            名称      EL       类型                                                是否必须   默认值
            var      N     String                                                   是       无
            items    Y     Arrays,Colleation,Iterator,Enumeration,Map,String[]args  是       无
            begin    Y     int                                                      否       0
            end     Y     int                                                   否   集合中最后一个元素
            step     Y     int                                                      否        1
            varStatus N    String                                                   否        无
            varStatus的四个状态:
            属性名           类型             说明
            index           int             当前循环的索引值
            count           int             循环的次数
            first           boolean         表明当前这轮迭代是否为第一次迭代
            last            boolean         表明当前这轮迭代是否为最后一次迭代
            示例:(1)<%
                        ArrayList list=new ArrayList();
                        for(int i=0;i<15;i++){
                            list.add(i,(i+1)*5);
                        }
                        request.setAttribute("list",list);
                    %>
                    <c:forEach items="${list}" var="current" varStatus="status" >
                        <c:out value="序号:"/>
                        <c:out value="${status.index}"/>
                        <c:out value="值:"/>
                        <c:out value="${current}"/><br>
                    </c:forEach>
    8><c:forTokens items="stringOfTokens" delims="delimiters" var="varName" 
        [varStatus="varStatusName"] [begin="begin"][end="end"][step="step"]>
        具体内容
      </c:forTokens>
            这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过
            delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,与forEach
            标签一样,forTokens标签也可以指定begin和end以及step属性值
        <c:forTokens>中各属性的说明如下:
            var:进行迭代的参数名称
            items:指定的进行标签化的字符串
            varStatus:每次迭代的状态信息
            delims:使用这个属性指定的分隔符来分隔items指定的字符串
            begin:开始迭代的位置
            end:迭代结束的位置
            step:迭代的步长
         示例:
             <%
                 String question="what*is*your*name*?";
                 request.setAttribute("question",question);
             %>
             <c:forTokens items="${question}" var="current" delims="*" varStatus="status">
                 第<c:out value="${status.count}"/>取出的单词为:
                  <c:out value="${count}"/><br>
            </c:forTokens>
    9>A.<c:Import url="url" [context="context"][value="value"][charEncoding="encoding"]
        [scope="page|request|session|application"]/>
      B.<c:import url="url"[context="context"][value="value"]var="name"/>
        该标签可以把其他静态或动态文件包含在本JSP页面
        与<jsp:include>的区别为:只能包含同一个web应用中的文件,而<c:import>可以包含其他web应用中的文件,甚至可以 
        包含网络上的资源
        <c:import>中各属性的说明如下:
            名称        说明                                   EL  类型   是否必须  默认值
            url       被导入资源的URL路径                        Y  String    Y    无
            context   相同服务器下其他的web工程必须以"\"            Y   String   N    无
            var       以String类型存入被包含文件的内容              N   String   N    无
            scope     var变量的JSP范围                           N   String   N    page
            charEncoding 导入文件的编码格式                        Y   String   N     无
            varReader  以Reader类型存储被包含文件内容                N  String   N     无
    示例:
        <c:import var="include" url="inc\content.txt" charEncoding="gb2312"/>
        <c:out value="下面是引入的内容:"/><br>
        <c:out value="${include}"></c:out>
 10>A.<c:url  value="value" [var="name"][context="context"]
         [scope="page|request|session|application"]/>
   B.<c:url value="value" [var="name"][scope="page|request|session|application"]/>
   c.<c:url value="value" [var="name"][scope="page|request|session|application"]
           [context="context"]>
               <c:param name="参数名" value="值">
     </c:url>
         该标签用于动态生成一个String类型的URL,可以同时<c:redirect>标签共同使用,也可以使用HTML的<a>标签实现超链
         接
         <c:url>中各属性的说明如下:
             value:将要处理的URL地址
             context:当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称
             var:给这个URL地址起一个标识
             scope:规定这个var属性所指定变量的有效范围
        示例:
            <c:url value="http://www.baidu.com"></c:url><br>
            <a href="<c:url value='http://www.baidu.com'></c:url>">百度</a>
            <c:url value="http://www.baidu.com">
                <c:param name="pwd" value="java"/>
            </c:url>
11><c:Redirect></Redirect>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值