zoukankan      html  css  js  c++  java
  • JSTL标签库的基本教程之核心标签库(二)

    JSTL标签库的基本教程之核心标签库(二)

     

    • 核心标签库

    标签

    描述

    <c:out>

    用于在JSP中显示数据,就像<%= ... >

    <c:set>

    用于保存数据

    <c:remove>

    用于删除数据

    <c:catch>

    用来处理产生错误的异常状况,并且将错误信息储存起来

    <c:if>

    与我们在一般程序中用的if一样

    <c:choose>

    本身只当做<c:when>和<c:otherwise>的父标签

    <c:when>

    <c:choose>的子标签,用来判断条件是否成立

    <c:otherwise>

    <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行

    <c:import>

    检索一个绝对或相对 URL,然后将其内容暴露给页面

    <c:forEach>

    基础迭代标签,接受多种集合类型

    <c:forTokens>

    根据指定的分隔符来分隔内容并迭代输出

    <c:param>

    用来给包含或重定向的页面传递参数

    <c:redirect>

    重定向至一个新的URL.

    <c:url>

    使用可选的查询参数来创造一个URL

     

    核心库标签的分类(上海尚学堂Java培训原创,转载说明出处,陆续有Java相关技术文章奉献)

    表达式类:out、set、remove、catch

    逻辑控制类:if、choose、when、otherwise

    循环判断类:forEach、forTokens

    u URL操作类:import、url、redirect、param

     

    在上篇文章中,我们讲了JSTL的核心标签库的表达式类标签:out标签、set标签、remove标签、catch标签。那么我们接下来说一说逻辑控制类标签以及循环判断类标签

     

    ² 逻辑控制类标签

     

    if标签(单一的if判断,没有else

    属性

    描述

    EL支持

    是否必须

    默认值

    test

    判断条件

    支持

    var

    判断结果存储的变量名

    不支持

    scope

    变量的存储范围

    不支持

    page

    语法:

    <c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>

    条件成立时的输出内容

    </c:if>

       示例:

    <c:set var="name" value="lisa"></c:set>  

    <!-- 当条件成立时,输出:我是lisa -->

    <c:if test="${name=='lisa'}" var="var1" scope="page">我是lisa</c:if>  

    <!-- 当条件不成立时,不输出 -->

    <c:if test="${name=='tony'}" var="var2">tony也是lisa</c:if>  

    var1:${var1} -- var2:${var2}  

    <!-- 我是lisa  var1:true -- var2:false -->

     

     

    choosewhenotherwise标签(嵌套使用相当于if-elseif-else

    属性

    描述

    EL支持

    是否必须

    默认值

    test

    判断条件

    支持

    语法:

    <c:choose>  

        <c:when test="">  

            前面的条件都不成立但此条件成立时输出  

        </c:when>  

        <c:when test="">  

            前面的条件都不成立但此条件成立时输出  

        </c:when>  

        ......  

        <c:otherwise>  

            前面的条件都不成立时才输出  

        </c:otherwise>  

    </c:choose>

       示例:

    <c:set var="score" value="60"></c:set>  

    <c:choose>  

    <!-- 不满足条件,不输出 -->

        <c:when test="${score < 60}">  

             不及格

        </c:when>  

        <!-- 满足条件,输出 -->

        <c:when test="${score == 60}">  

             刚好及格  

        </c:when>  

        <!-- 不满足条件,不输出 -->

        <c:when test="${score > 60}">  

             良好  

        </c:when>  

        <!-- 上面有条件成立,不输出 -->

        <c:otherwise>  

             取消资格  

        </c:otherwise>  

    </c:choose>  

    <!-- 刚好  -->

     

     

    ² 循环判断类标签

     

    forEach标签(循环遍历)

     forEach参数说明

    名称

    描述

    EL支持

    是否必须

    默认值

    items

    遍历的集合对象

    支持

    var

    每次遍历的对象

    不支持

    varStatus

    遍历的相关信息

    不支持

    begin

    开始的位置(正数)

    支持

    0

    end

    结束的位置(正数)

    支持

    集合长度

    step

    遍历的步长(正数)

    支持

    1

     

    varStatus属性说明

    名称

    类型

    说明

    index

    number

    遍历对象的索引,从0开始

    Count

    number

    总共循环的次数,从1开始

    First

    boolean

    本次循环遍历的是否是集合的第一个元素

    end

    boolean

    本次循环遍历的是否是集合的最后一个元素

     

    语法1:遍历集合,类似(String snew String[]{“a”,”b”}

    <c:forEach items="collection" [var="varName"] [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>  

        输出内容  

    </c:forEach>

     

    语法2:循环指定次数,类似(int i=0i<5;i++

    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" 

    end="end" [step="step"]>    

        输出内容  

    </c:forEach>

     

     示例:

    循环List

    <%  

    List<String> list = new ArrayList<String>();  

    list.add("A");  

    list.add("B");  

    list.add("C");  

    list.add("D");  

    list.add("E");  

    list.add("F");  

    request.setAttribute("list",list);  

    %>  

    <c:forEach items="${list}" var="l" varStatus="ll" begin="1" end="5" step="2">  

        第${ll.count}次迭代,索引:${ll.index},值是:${l},是否是第1个:${ll.first},是否是最后 一个:${ll.last}<br>  

    </c:forEach>  

    <!--   

    第1次迭代,索引:1,值是:B,是否是第1个:true,是否是最后 一个:false  

    第2次迭代,索引:3,值是:D,是否是第1个:false,是否是最后 一个:false  

    第3次迭代,索引:5,值是:F,是否是第1个:false,是否是最后 一个:true  

    -->  

     

    遍历Map

    <%  

    Map<String,String> map = new HashMap<String,String>();  

    map.put("key1", "value1");  

    map.put("key2", "value2");  

    map.put("key3", "value3");  

    request.setAttribute("map",map);  

    %>  

    <c:forEach items="${map}" var="m">  

        key:${m.key},value:${m.value}<br>  

    </c:forEach>  

    <!--   

    key:key3,value:value3  

    key:key2,value:value2  

    key:key1,value:value1  

    -->

     

    遍历Set

    <%  

    Set<String> set = new HashSet<String>();  

    set.add("周杰伦");  

    set.add("林俊杰");  

    set.add("陈奕迅");  

    request.setAttribute("set",set);  

    %>  

    <c:forEach items="${set}" var="s">  

        ${s}  

    </c:forEach>  

    <!-- 陈奕迅  林俊杰 周杰伦 -->

     

    循环指定次数

    <c:forEach var="i" varStatus="ii" begin="0" end="10" step="3">  

        第${ii.count}次迭代,索引:${ii.index},值是:${i},是否是第1个:${ii.first},是否是最后 一个:${ii.last}<br>  

    </c:forEach>  

    <!--   

    第1次迭代,索引:0,值是:0,是否是第1个:true,是否是最后 一个:false  

    第2次迭代,索引:3,值是:3,是否是第1个:false,是否是最后 一个:false  

    第3次迭代,索引:6,值是:6,是否是第1个:false,是否是最后 一个:false  

    第4次迭代,索引:9,值是:9,是否是第1个:false,是否是最后 一个:true  

    -->

     

     

    forTokens标签(字符串拆分,相当于Stringsplit方法)

    名称

    描述

    EL支持

    是否必须

    默认值

    items

    要被拆分的字符串

    支持

    delims

    用来拆分的字符串

    不支持

    var

    保存每次拆分的字符串

    不支持

    varStatus

    第几次拆分的相关信息

    不支持

    begin

    起始位置

    支持

    0

    end

    终止位置

    支持

    被拆分后的长度

    step

    步长

    支持

    1

     

    语法:

    <c:forTokens items="str" delims="selStr" [var="varName"]  

    [varStatus="varStatusName"] [begin="begin"] [end="end"] [step="step"]>  

    输出内容  

    </c:forTokens>  

    注:varvarStatusbeginendstepforEach的参数作用相同

     

    示例:

    <c:forTokens items=",,,," delims="," var="i" varStatus="a">  

        ${i}  

    </c:forTokens>  

    <!-- 我 很 喜 欢 你 -->

     

     

  • 相关阅读:
    把EXE可执行文件等作为资源包含在Delphi编译文件中
    在DBGrid增加一列CheckBox(而非DBCheckBox)
    TCanvas 类属性及方法
    Windows RPC
    Meteor入门
    IntelliJ IDEA 开发scala
    Web前端开发实用的Chrome插件
    Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试
    Ruby入门--Linux/Windows下的安装、代码开发及Rails实战
    IntelliJIDEA Getting+Started+with+Spring+MVC,+Hibernate+and+JSON
  • 原文地址:https://www.cnblogs.com/shsxt/p/7763775.html
Copyright © 2011-2022 走看看