• JSTL常用标签6


    JSTL常用标签:

    1、EL表达式可以取出Java Bean以及单个属性的值,在页面中使用${..},但是不能遍历集合。 使用JSTL可以遍历集合,因此使用EL和JSTL配合使用,基本上可以实现所有的功能。

    2、在使用标签的页面中,头部需要引入文件,我的公司实际项目引入以下的标签:

    <%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

    3、<c:out/>标签

    用法:<c:out value="${param.Action}"></c:out>

    等效于EL表达式中的${param.action},其中 <c:out/>标签有属性default以及escapeXml,如果value的值不存在会输出default的值,escapeXml为 true会对输出的内容进行编码(只对特殊字符&,“>”,"<");

    <c:out value="${param.Action}" default="aaaa"  ></c:out> <c:out value='${"<>"}' escapeXml="true"  ></c:out>-------&lt;&gt;

    4、<c:if/>标签  

    用法:<c:if test="${param.action=='add'}"></c:if>

     == -----eq;

     >  -----gt;  

    < ------lt;

     5、<c:choose/> 、<c:when/>、<c:otherwise/>标签  

    用法:  <c:choose>

          <c:when test="${param.action=='12'}">   

             when标签的输出

         </c:when>

         <c:otherwise>    

            otherwise标签的输出 

         </c:otherwise>

        </c:choose>

     6、<c:forEach/>标签

      var 定义变量的名称,begin定义开始的位置,end定义结束的位置,step定义步长  

     (1)<c:forEach/>标签遍历List  

       用法:<c:forEach items="${personlist}" var="data">    <tr>       <td>${data.age}</td>    </tr>  </c:forEach>

     (2) <c:forEach/>标签遍历Map对象

       Map也是集合类,但是由于Map中存储的是一对属性,因此遍历Map与遍历List、set String[]不同  

      <forEach items="${mapperson}" var="data">

       <tr>

           <td>${data.key}</td>   

         <td>${data.value}</td>   

         </tr>   

     </forEach>   

    (3)<c:forEach/>标签的varStatus属性

       当前被遍历对象的信息被记录在varStatus里,通过varStatus即可获取当前遍历对象的信息。   

      varStatus的属性:   

      index:返回当前对象是第几个对象。从0开始计数。   

      count:返回已经遍历了多少对象。从1开始计数。   

      first:返回当前对象是否是第一个对象   

      last:返回当前对象是否是最后一个对象。   

      current:返回当前被遍历的对象。  

      begin:返回forEach标签begin属性的值。   

      end:返回forEach标签end属性的值。   

      step:返回forEach标签step属性的值。

    7、<forTokens/>标签

      forTokens标签与forEach标签类似,都有begin、end、step、items等属性,可以循环遍历items属性的值。

       不同的是forEach标签里的items属性里面是集合类对象或者是数组,而forTokens标签里的items属性里面是字符串。 这个字符串会被delims属性内容分割成多个字符串。

       <c:forTokens items="aa,bb,cc,dd" delims="," var="data" varStatus="status" begin="1" end="2">

            <tr> <td>${data}</td> </tr>

      </c:forTokens>

    8、<c:set/>标签以及<forEach/>遍历数组

         <c:set var="names" value="${fn:split(strlist,',')}"/>

     <forEach var="name" items="${names}">  ${name} </forEach>

    9、<c:set/>标签

    能够实现写的功能。既可以声明一个不存在的对象,也可以修改一个已经存在的对象,还可以修改对象的某个属性,前提是该属性是可写的  (即有对应的setter方法)。  set标签有5个属性:

      var :是set的对象名,如果该对象不存在则生成,如果存在则修改。  

      value:是set进去的值,可以是El表达式。

      scope:声明该对象的范围,取值可以为Session 、request、page、application等,默认为page。  

      target:作用类似于var,不同的是target只能用来操作Java Bean或者Map。target和var的功能是互补的,二者不能同时使用。target只能接受  El表达式,而var不能接受EL表达式。   target一般与property一块使用。如果target为Java Bean,则property为Java Bean的一个属性,则不存在会抛错。  如果target为Map,则property为Map的一个Key,如果不存在会创建。  target只能修改已经存在的Java Bean的属性或者Map的内容。

     var 只能设置Integer、Double、Float、String等类型的数据,而不能操作Java Bean或者Map等复杂数据类型。

  • 相关阅读:
    #斯坦纳树#洛谷 4294 [WC2008]游览计划
    #位运算#CF959E Mahmoud and Ehab and the xor-MST
    #构造#洛谷 6470 [COCI2008-2009#6]CUSKIJA
    #dp#洛谷 6855 「EZEC-4.5」走方格
    #容斥,排列组合#U138404 选数字
    #线段树合并#JZOJ 5365 通信
    #树上启发式合并,trie#JZOJ 5363 生命之树
    #循环节,gcd#JZOJ 5362 密码
    #树状数组、dp#JZOJ 5361 捕老鼠
    #dp#JZOJ 1281 旅行
  • 原文地址:https://www.cnblogs.com/mzzy/p/3963806.html
Copyright © 2020-2023  润新知