jstl标签——核心标签(一)

JSTL一共主要提供了 5大类标签库 :核心标签库、国际化(I18N)标签库、SQL标签库、XML标签库、 函数标签库

核心标签库

核心标签库包括:out , set , remove , catch , if ,forEach.(还有choose , when URL   还没研究 )

表达式操作标签包括:out , set , remove , catch.

out标签:

       核心标签库中最为基本的标签就是<c:out>,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的<%= 表达式%>类似

       使用格式如下:

-----------------------c:out-------------------<br>
   <c:out value="${user}">good morning</c:out>
   <c:out value="<h1>hello world</h1>" escapeXml="true"/>
    <c:out value="<h1>hello world</h1>" escapeXml="false"/>当escapeXml为false时  HTML标签有效    当为true时无效

这表示当value属性指定的object值为null,就会显示体中指定的值,也就是default value的值,体中也可以是jsp代码.

              <c:out>中各属性的说明如下:

1.       value : 可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}.

2.       escapeXml : 类型为boolean , 确定 , < , > , & , ‘ , “ 等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出)

3.       default value : 可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalut value部分的值.

set标签:

       set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.

       Set标签使用格式如下:

       1. 使用value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:
       <c:set var=”varName” value=”varValue” [scope=”page|request|session|application”]/>

       2. 当使用value属性在一个特定范围内指定某各变量的值时,也可以包括一个体,他的作用与out标签体的作用一样,value指定的值为null,默认使用体中指定的值,使用的格式如下:
       <c:set var=”varName” value=”varValue” [scope=”page|request|session|application”]>
              default value
       </c:set>

3. 设置某一个特定对象属性的使用格式如下:
<c:set property=”propertyName” target=”target” value=”value”/>

4. 在设置某个特定对象的一个属性时,也可以使用一个体,并且指定默认的值,使用格式如下:
      <br>-----------------------c:set-------------------<br>
    <c:set var="user" value="tam" scope="session"/>
    <c:out value="${user}"></c:out>
    <br>
    <%
        Map map=new HashMap();
        request.setAttribute("map",map);
        
     %>
     <c:set target="${map}" property="city" value="baoding"></c:set>
     <c:out value="${map.city }"></c:out>遍历MAP集合
     <%
          Person pe=new Person();
          request.setAttribute("pe",pe);
      %>
      <c:set property="name" value="wo" target="${pe}"> </c:set>
      <c:out value="${pe.name}"></c:out>
      <br/>

      该标签中的各属性说明如下:

      1. value : 该属性指定变量或者对象中某个属性的值,并且可以是一个表达式.

      2. var : 变量名称,value属性指定的值就保存在这个变量中.

      3. scope : 设定变量的有效范围,如果不设置,默认为page.

      4. target : 设置属性的一个对象,它必须是JavaBean 或者java.util.Map对象.

      5. property : 设置对象中的一个属性.

remove标签

       remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:

 <br>-----------------------c:remove-------------------<br>
      <%
      session.setAttribute("date","2011.11.11");
       %>
       date=${date}
       <br/>
       <c:remove var="date"/>
       <c:out value="${date}">date已经删除了</c:out>

    scope可以为四个作用域

       <c:remove var=”varName” [scope=”page|request|session|application”] />

       Remove标签中使用的各属性说明如下:

1.       scope : 设定这个需要删除的变量的所在范围.

2.       var : 需要删除的变量或者对象属性的名称.

如果没有scope属性,即采用默认值,就相当于调用PageContext.removeAttribute(varName)方法,如果指定了这个变量所在的范围,那么系统会调用PageContext.removeAttribute(varName,scope)方法.

 

catch标签

catch标签的功能和java中的try{…}catch{…}语句的功能很相似,它用于捕获嵌入到其中间语句抛出的异常,这个标签的使用格式如下:

    <br>-----------------------c:catch-------------------<br>
       <c:catch var="error">
          <%=1/0 %>
       </c:catch>
       输出异常:
       <c:out value="${error}"></c:out>   <br/>
       异常:<c:out value="${error.message}"></c:out>   <br/>
       堆栈轨迹<c:out value="${error.stackTrace}"></c:out>

                     相关操作语句

</c:catch>   --如果操作语句中出现异常,catch会将异常保存在 varName变量中.

       流程控制标签: 包括: if , choose , when , otherwise .

       if标签

              这个标签作用与java中的if语句作用相同,用于判断条件语句,主要的使用格式如下

1.       <c:if> 体中不包括体的使用格式:

<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”/>

       2.  <c:if> 体中包括体时,使用格式如下:
<c:if test=”checkCondition” var=”varName” scope=”page|request|session|application”>
       body content
</c:if>

       标签中使用的属性说明:
              test :
判断条件的表达式,返回类型为true 或者 false;(也就是if的条件)

var : 这个变量用于保存test条件表达式判断所返回的true或者false
(if条件执行后所得到的boolean值将要保存在var变量中).

              scope : 指定var变量所在的有效范围.

forEach迭代标签

该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,一般的使用格式如下:

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

       Body content

</c:forEach>

这个标签使用的属性描述如下:

1.       var : 也就是保存在collection集合类中的对象名称.

2.       items : 将要迭代的集合类名.

3.       varStatus : 存储迭代的状态信息,可以访问到迭代自身的信息.

4.       begin : 如果指定了begin,就表示从items[begin]开始迭代;如果没有指定begin,则从集合的第一个值开始迭代.

5.       end : 表示迭代到集合的end位时结束,如果没有指定end,则表示一直迭代到集合的最后一位.

6.       step : 指定迭代的步长.

        <br>-----------------------c:forEach-------------------<br>
    <%
       List list =new ArrayList();
       list.add("1");
       list.add("2");
       list.add("3");
       list.add("4");
       list.add("5");
       list.add("6");
       list.add("7");
       list.add("8");
       request.setAttribute("list",list);
     %>
     <c:forEach items="${list }" var="curElement" begin="2" end="4" step="2">
         <c:out value="${curElement}"></c:out><br/>
     </c:forEach>
     
     <br/>
   


——————————————————————————————

    <br>-----------------------c:forEach实现表格颜色-------------------<br>
    <%
       List list =new ArrayList();
       list.add("1");
       list.add("2");
       list.add("3");
       list.add("4");
       list.add("5");
       list.add("6");
       list.add("7");
       list.add("8");
       request.setAttribute("list",list);
     %>
     <style type="text/css">
        .even{background-color:#ffffcc}
        .odd{background-color:#ffcc00}
        tr:hover{background-color:#ffccff}
     </style>
     <table border="1" width="30%">
      <c:forEach var="data" items="${list}" varStatus="status">
            <tr class="${status.count%2==0?'odd':'even'}">
               <td>${data}</td>
            </tr>
      </c:forEach>
      </table>

forTokens 标签

这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,forEach标签一样,forTokens标签也可以指定beginend以及step属性值.

使用格式如下:

<c:forTokens items=”stringOfTokens” delims=”delimiters” var=”varName” [varStatus=”varStatusName”] [begin=”begin”] [end=”end”] [step=”step”]>

              Body content

</c:forTokens>

标签中的各个属性描述如下:

1.       var : 进行迭代的参数名称.

2.       items : 指定的进行标签化的字符串.

3.       varSatus : 每次迭代的状态信息.

4.       delims : 使用这个属性指定的分隔符来分隔items指定的字符串.

5.       begin : 开始迭代的位置.

6.       end : 迭代结束的位置.

7.       step : 迭代的步长.

<c:forTokens items="2011-11-10" delims="-" var="token">
         <c:out value="${token}"/>
      </c:forTokens>
        <c:forTokens items="1234567890" delims="358" var="token">
         <c:out value="${token}"/>

      </c:forTokens>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值