zoukankan      html  css  js  c++  java
  • JSTL标签之c:foreach,c:if标签小结

    <c:forEach>标签用于通用数据循环,它有以下属性

    属 性 描 述 是否必须 缺省值
    items 进行循环的项目
    begin 开始条件 0
    end 结束条件 集合中的最后一个项目
    step 步长 1
    var 代表当前项目的变量名
    varStatus 显示循环状态的变量

    begin和end属性

    可以指定开始循环位置和结束循环位置。例如

    从集合第二个元素开始迭代:

    <c:forEach items="${userInfo.roleTypeEnNames}" var="item" varStatus="status" begin="1"></c:forEach>

    从集合第一个元素迭代,第二个元素结束

    <c:forEach items="${userInfo.roleTypeEnNames}" var="item" varStatus="status" begin="0" end="1"></c:forEach>

    vaStatus 属性

    JSTL中的varStatus和 var 属性一样, varStatus 用于创建限定了作用域的变量。不过,由 varStatus 属性命名的变量并不存储当前索引值或当前元素,而是赋予 javax.servlet.jsp.jstl.core.LoopTagStatus 类的实例。该类定义了一组特性,它们描述了迭代的当前状态,下面列出了这些特性:

    特性         Getter                       描述current    getCurrent()           当前这次迭代的(集合中的)项
    
    index       getIndex()               当前这次迭代从 0 开始的迭代索引
    
    count       getCount()             当前这次迭代从 1 开始的迭代计数
    
    first          isFirst()                  用来表明当前这轮迭代是否为第一次迭代的标志
    
    last          isLast()                  用来表明当前这轮迭代是否为最后一次迭代的标志
    
    begin      getBegin()             begin 属性值
    
    end         getEnd()                 end 属性值
    
    step        getStep()                step 属性值

    c:forEach 中vaStatus的属性可以获得迭代的自身状态,如:
    <c:forEach var=”" items=”" varStatus=”status”>
    <c:out value=”${status.current}”/> 当前对象
    <c:out value=”${status.index}”/> 此次迭代的索引
    <c:out value=”${status.count}”/> 已经迭代的数量
    <c:out value=”${status.first}”/> 是否是第一个迭代对象
    <c:out value=”${status.last}”/> 是否是最后一个迭代对象
    </c:forEach>

    <c:forEach>标签的items属性支持Java平台所提供的所有标准集合类型。此外,您可以使用该操作来迭代数组(包括基本类型数组)中的元素。它所支持的集合类型以及迭代的元素如下所示:

    java.util.Collection:调用iterator()来获得的元素。

    java.util.Map:通过java.util.Map.Entry所获得的实例。

    java.util.Iterator:迭代器元素。

    java.util.Enumeration:枚举元素。

    Object实例数组:数组元素。

    基本类型值数组:经过包装的数组元素。

    用逗号定界的String:分割后的子字符串。

    javax.servlet.jsp.jstl.sql.Result:SQL查询所获得的行。

    *****************************************无敌分割线****************************************

    <c:if>标签有如下属性:

    属性描述是否必要默认值
    test 条件
    var 用于存储条件结果的变量
    scope var属性的作用域 page

    例子:判断用户角色list是否包含ledcdistrictMng

    <c:if test="${fn:contains(userInfo.roleTypeEnNames,'ledcdistrictMng')}">
    <tsp:show value="zxjx.createAndRecommendCourse">
    <div class="mlr25 schb-btns">
    <a href="${ctx }
    onlineteaching/course/courseStudy_courseStudyRecords.action?userId=${userInfo.userId}&flag=0"
    class="begin"><span class="begin-ic">已学课程</span>

    </a>
    <a href="${ctx}onlineteaching/teaCreCourse_creCourseStepTwo.action?type=3" class="recom">

    <span class="recom-ic">发布课程
    </span>

    </a>
    </div>
    </tsp:show>
    </c:if>

    由于只有<c:if>没有<c:else>,所以要用c:else可以用下面方法代替:

    <c:choose>
    <c:when test="${fn:contains(item,'ledcdistrictMng')}">

    111111
    </c:when>
    <c:otherwise>

    222222
    </c:otherwise>

    </c:choose>

    补充contains函数2种用法:

    第一种:fn:contains      ${fn:contains(userInfo.roleTypeEnNames,'ledcdistrictMng')}   tomcat6.0,jetty6.0,tomcat7.0都支持

    第二种:                      ${ userInfo.roleTypeEnNames.contains('ledcdistrictMng')}    这种tomcat6.0和jetty6.0都不支持,只有tomcat7.0支持,jetty7.0没试

    这个人不懒,写了一点东西
  • 相关阅读:
    linux中配置celery定时任务
    django2 将request.body 中的json字符串转换成字典
    在postman中各种填写参数的区别
    requests.Request 中参数data与json的区别
    Java中使用OpenSSL生成的RSA公私钥进行数据加解密
    openssl生成RSA密钥证书
    WKWebViewJavascriptBridge
    LeetCode实现 strStr()Swift
    LeetCode删除排序数组中的重复项Swift
    LeetCode合并两个有序链表Swift
  • 原文地址:https://www.cnblogs.com/AnonymouL/p/6336476.html
Copyright © 2011-2022 走看看