您的位置:首页 > Web前端 > JavaScript

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

2011-11-10 19:50 471 查看
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标签也可以指定begin和end以及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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息