jstl與el表達式

EL表達式應與JSTL配合使用,但EL表達式在JSP2.0,servlet2.4以上可以單獨使用。
EL表達式的基本形式爲:
${ expression }
expression可以爲page,request,session,application域內的變量,集合,或算術邏輯運算。EL運算符有 +, - , * ,/ 或

div , % 或 mod , == 或 = , = 或 ne  , < 或 lt , > 或 gt , <= 或 le , >= 或 ge , && 或 and , || 或 or , ! 或 not , empty (

測試是否爲空如:${empty expression} 結果爲true/false), a?b:c。
(1)對存儲對象的訪問
 若要輸出作用域變量saleItem(通過setAttribute方法存儲在page,request,session,application作用域內的變量

)的變量:${saleItem},若知道saleItem在request作用域內還可以如此訪問:${requestScope.saleItem}。若不指定作用域

則默認在EL四個隱含對象pageScope,requestScope,sessionScope,applicationScope作用域中按順序查找。
(2)對javaBean屬性的簡化記法
 要輸出作用域變量company的companyName(在javaBean類定義中必須存在getCompanyName()方法纔可訪

問)屬性:${company.companyName}。要訪問company的president 屬性的firstName(存在相應的getXXX()方法)屬性:
${company.president.firstName}。
(3)對集合或數組的訪問
 要訪問數組,List,Map中的元素爲:${variable[index/key]}。

 

JSTL
一. 配置 JSTL
 包括兩個 JAR 文件, jstl.jar 和 standard.jar 。
原文引入:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>   

二.JSTL的標籤庫

 核心標籤庫core
 

(1)<c:out value = "expression"  [default = "expression"]  [escapeXml = "true/false"]/>或
 <c:out value = "expression"    [escapeXml = "true/false"]>
  default value
 </c:out>
 value爲輸出表達式,當value爲空又設置了default時輸出默認值default的內容,escapeXml爲是否照原樣輸出
 而忽略html標籤代碼默認爲true.

 (2)<c:set var = "name"  [scope = "page/request/session/application"]  value = "expression"/> 或
      <c:set var = "name"  [scope = "page/request/session/application"] >
  value
      </c:set>
 此表達式爲在相應的作用域內申明一個name的變量,其值爲value的內容.

 (3)<c:remove var = "name"  [scope = "page/request/session/application"] />
 此表達式爲在相應的作用域內刪除name變量.

 (4)<c:catch var = "name"  [scope = "page/request/session/application"]>...</c:catch>
 捕獲異常,並用name標示此異常.

 (5)流程控制:
 條件控制標籤:

 1.  c:if 
 <c:if test = "expression" var = "varName" scope = " "></c:if>
 test爲測試表達式,var表示test運行後的結果,類型爲String值爲true/false,scope爲var的存儲範圍。
 
 2.  c:choose 
 <c:choose>
  <c:when test = "expression">
   ...
  </c:when>
  <c:when test = "expression">
   ...
  </c:when>
  <c:otherwise>
   ...
  </c:otherwise>
 </c:choose>
 可以有一個或多個<c:when></c:when>但只能有0個或一個<c:otherwise></c:otherwise>且只能放  

在<c:when></c:when>後面。
 
 循環控制標籤:

 1.  c:forEach
 格式一:集合或數組的迭代
 <c:forEach  [var = "varName"] 
      items = "collection/arrays" 
      [varStatus = "varStatusName"] 
      [begin = " "]
      [end = " "]
      [step = " " ]>
  ....
 </c:forEach>
 items爲被循環的集合或數組,var用來存儲當前被訪問的變量,varStatus爲當前的循環狀態,begin爲開始位置,
 end爲結束位置,step爲步長。
 格式二:一般的迭代
 <c:forEach  [var = "varName"]
      [varStatus = "varStatusName"]
      begin = " "
      end = " "
      [step = " "]>
   ...
 </c:forEach>

 

 2.  c:forTokens
 一般用來字符串的循環。
 <c:forTokens  items = "String"
         delims = ",/ " 
         [var = "varName"]
         [varStatus = "varStatusName"]
         [begin = " "]
         [end = " "]
         [step = " "]>
  ...
 <c:forTokens>
 delims爲字符串分隔符逗號、空格等等。

 (6)URL標籤:
 <c:import url = " url" [context = " "]  [var = "varName"]  [scope = "scope"]  [charEncoding = " "] />

 <c:redirect url = "url"  [context = " "] />或
 <c:redirect url = "url"  [context = " "] >
  <c:param name = " "  value = " "/>
 </c:redirect>

 <c:param name = " "  value = " "/>
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章