zoukankan      html  css  js  c++  java
  • JSTL Tag学习笔记(一)之<c: />

    注:本文中的例子主要来自http://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm。 

    ==========================================================

    Core Tags:
    在使用JSTL中的core tags的时候,首先需要引入一下库:

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

    1. c:out
         包含3个属性:value(required)、default、escapeXML(默认值为true)。
         向页面上输出表达式的值,有点类似<%= %>的作用,不过它可以使用“.”的方式输出一个对象中的值,例如:<c:out value="customer.address.street"/>
         当escapeXML的值为true时,还有xml特殊字符的表达式不会被求值,而是直接输出。
         Example:

    <body>
      <
    c:out value="${'<tag> , &'}"/>
    </
    body>

         Result:

    <tag> , &

    2. c:set
         包含5个属性:value、target(如果指定了target,同时也必须指定property)、property、var、scope(默认值为Page)。
         target:需要修改属性值的对象。
         scope:决定该变量的生命周期(如session、request、page...)
         Example 1:

    <body>
      <c:setvar="salary"scope="session"value="${2000*2}"/>
      <c:outvalue="${salary}"/>
    </body> 

         Result:
    4000
         Example 2:
     Java Code

    package foo;  
    public class DemoBean{  
        private String MyField;  
        public void setMyField(String s){  
            this.MyField = s;  
        }  
        public String getMyField(){  
            return this.MyField;  
        }      
    }  

    JSP Code 

     <body> 
      <jsp:useBean id="address" class="java.util.HashMap" />  
      <jsp:useBean id="demo" class="foo.DemoBean" />  
      <c:set target="${demo}"  property="myField" value="hello" />  
      <c:set target="${address}" property="line1" value="10 Downing St" />  
      <c:set target="${address}" property="postcode"> SW1A2AJ </c:set>
      <c:out value="${address.line1}"/>  
      <c:out value="${address.postcode}"/>  
      <c:out value="${demo.myField}"/>   
    </body>  

         Result:
    10 Downing Street SW1A2AJ hello
    Note:在上面的例子中的<jsp:useBean/>Tag必须放在body里面,否则可能会出错。

    3. c:if
         包含3个属性:test(required)、var、scope。
         test:条件表达式,决定是否要执行方法体里的内容。接收boolean值。
         scope:默认为Page。
         Example:

    <body>
      <c:setvar="salary"scope="session"value="${2000*2}"/>
      <c:iftest="${salary > 2000}">
        <p>
          My salary is: <c:outvalue="${salary}"/>
        </
    p>   </c:if> </body>

         Result:
    My salary is:4000


    4. c:choose、c:when、c:otherwise
         其中c:when包含一个属性:test
         其实将这三个Tag类比Java中的Switch语句就很好理解了。c:choose就像switch,c:when像case,c:otherwise像default。
         Example:

    <body>
      <c:setvar="salary"scope="session"value="${2000*2}"/>
      <p>
        Your salary is : <c:outvalue="${salary}"/>
      </
    p>   <c:choose>    <c:when test="${salary <= 0}">    Salary is very low to survive.   </c:when>   <c:whentest="${salary > 1000}">   Salary is very good.   </c:when>   <c:otherwise>   No comment sir...   </c:otherwise>   </c:choose> </body>

         Result:
    Your salary is:4000
    Salaryis very good. 

    5. c:forEach
         它包含6个属性:items、begin、end、step、var、varStatus。
         用它可以在jsp中取代Java中的for、while、do-while循环。 
         items:需要遍历的集合或者对象。
         begin:从哪一个元素开始,默认值为第一个元素。
         end:到哪一个元素结束,默认值为最后一个元素。
         step:遍历的步长,默认值为1。
         var:当前的元素。
         varStatus:保存循环状态的对象。它有一些比较实用的方法:

    • getBegin():返回begin属性的值,如果没有设置begin属性则返回null。
    • getEnd():返回end属性的值,如果没有设置end属性则返回null。
    • getCurrent():返回遍历时,当前的元素。
    • getStep():返回step属性的值,如果没有设置step属性则返回null。
    • getIndex():返回循序的索引,从0开始。
    • getCount():返回循环的轮数,从1开始。
    • isFirst():返回当前是否为遍历的第一轮。
    • isLast():返回当前是否为遍历的最后一轮。

         Example:

    <body>
      <c:forEachvar="i" begin="1" end="5">
         Item <c:outvalue="${i}"/><br>
      </c:forEach>
    </body> 

         Result:
    Item1
    Item2
    Item3
    Item4
    Item5


    6. c:url
         它包含了4个属性:value、context、var、scope。
         value:url值。
         context:当前web应用的名字。
         var:保存url值的变量。
         scope:默认值为Page。
         Example:

    <body>
      <a href="<c:urlvalue="/jsp/index.htm"/>">TEST</a>
    </body>


    7. c:param
         它包含两个属性:name、value。
         它一般和<c:url />一起使用,用以传递参数。
         Example:

    <c:urlvalue="/index.jsp"var="myURL">
       <c:paramname="trackingId"value="1234"/>
       <c:paramname="reportType"value="summary"/>
    </c:url>
    <c:importurl="${myURL}"/>

          最后会被渲染成:

    /index.jsp?trackingId=1234;reportType=summary












  • 相关阅读:
    COOKIE和SESSION有什么区别?
    JSP中三大指令
    JSP中out.print()、out.println()以及out.write()的区别
    Linux实战教学笔记06:Linux系统基础优化
    Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)
    Linux实战教学笔记04:Linux命令基础
    Linux实战教学笔记03:操作系统发展历程及系统版本选择
    Linux实战教学笔记02:计算机系统硬件核心知识
    Linux实战教学笔记01:计算机硬件组成与基本原理
    从零开始学Python第八周:网络编程基础(socket)
  • 原文地址:https://www.cnblogs.com/penghongwei/p/3390070.html
Copyright © 2011-2022 走看看