JSP運算式語言(EL)

來源:互聯網
上載者:User
JSP用於在網頁上顯示動態內容,通常需要在JSP頁面中嵌 入Java指令碼以完成複雜功能。但大量的Java指令碼使得JSP頁面難以維護。一種類似JavaScript語言—JSP運算式語言可用於在網頁上產生動 態內容,並代替JSP指令碼元素(運算式、Script、聲明),EL運算式可用於所有的HTML和JSP標籤中。
EL運算式文法:
     ${ EL expression}
其中:
$表示EL運算式的開始。
EL expression指定運算式。

一、JSP EL運算式可用於如下幾種方式。
1 靜態文本:包含EL運算式,其值在運行時計算出來。
如: ${8+5}

2 標準標籤和自訂標籤屬性:協助顯示網頁上的動態內容。
     JSP提供一些標準標籤,<jsp:useBean>、<jsp:include>等。自訂標籤是由使用者使用taglib指令編寫的。
     EL運算式可以作為一個值傳遞給上述標籤的屬性。運算式在運行時計算,結果值將作為屬性值進行傳遞。
如:
  <%
        pageContext.setAttribute("color","#ffccff");
     %>
<body bgcolor="${pageScope.color}">
  7+8=${7+8}
</body>

3 JavaBean與EL運算式:使用EL運算式可以簡潔地讀出JavaBean的屬性值。
     傳統的JSP通常使用如下方法訪問JavaBean:
        <jsp:getProperty name=”myBean” property=”name”/>
        <%=myBean.getName()%>
     EL運算式則簡化為:
         ${myBean.name}

二、啟用/禁用EL運算式
<%@ page isELIgnored=”true|false” %>
為true時,支援EL運算式計算。
為false時,不支援EL運算式計算。

三、變數
JSP運算式${product}的計算結果與調用pageContext.findAttribute(“product”)一樣,EL運算式中的變數可以引用儲存在標準範圍(如:page request session application)中的屬性。

點運算子(.)和”[]”用於擷取變數的值。
如:a.identifier-b與expr-a[identifier-b]等價。

四、隱式對象
JSP隱式對象是一組標準的類。在JSP EL定義了如下隱式對象:
1 pageContext:提供對頁面屬性的訪問。通過pageContext對象可以訪問和使用下列對象。

2 request:表示接受的用戶端的JSP頁面請求。請求的資訊可以使用request對象來訪問。如:${pageContext.request.contextPath}返回請求的上下文路徑。

3 param:返回將請求參數名映射至單個字串值的值。如:${param[“name”]}

4 paramValues:返回映射至用戶端的請求參數的一組值。

5 pageScope:返回頁面範圍的變數名,這些名稱已映射至相應的值。

6 requestScope:提供對請求對象的屬性的存取權限。

7 sessionScope:返回會話範圍內的變數名。

8 applicationScope: 返順應用程式範圍內抽變數名。
五、文字常量
JSP運算式語言定義了下列文字常量:
1 布爾型:true或false。
2 整型:與Java中的整型相同。
3 浮點型:與Java中的浮點型相同。
4 字串型:用單引號或雙引號引起。
5 null:表示沒有值。0和Null 字元串表示的不是null值。

六、運算子
點運算子(.)和”[]”用於擷取變數的值。
!或not                                布爾值取反
empty                                 檢查空值
*                                          乘法
/或div                                 除法
%或mod                           求餘數或模數
+                                         加
-                                          減
<或lt                                  小於
>或gt                                 大於
<=或le                               小於等於
>=或ge                             大於等於
==或eq                             等於
!=或ne                               不等於
&&或and                          邏輯與
||或 or                                邏輯或
num1?num2:result        條件運算子

=================================================================
[size=large]EL運算式 動態表格式資料加序號
<c:forEach var="zb" items="${list}" varStatus="index">
${index.count}
</c:forEach>

================================================================
定義頁面變數,自增
<c:set value="0" var="i" scope="page"/><c:forEach var="fb" items="${FB}" varStatus="index">     
                              <tr><td width="10%" align="center"><c:if test="${!empty fb.sfbz}">
<c:set value="${pageScope.i + 1}" var="i" scope="page"/>
<c:out value="${pageScope.i }"/></c:if>  
</td> <td width="40%">
                  ${fb.xmmc}
</td>
<td width="40%">
                  ${fb.sfbz}
</td>
</tr>
</c:forEach>
==================================================================
格式化時間
<fmt:formatDate value="${yxqjz}" pattern="yyyy-MM-dd" />
<fmt:formatDate value="${zxyprice.startdate2}" type="date" dateStyle="medium"/>

====================================================================
跨行
<c:if test="${status.index == 0}" >
<td rowspan="${size}">1月</td>
</c:if>
=====================================================================
<script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
TabbedPanels1.showPanel(${tabId});
//-->
  </script>

<div id="TabbedPanels1" class="TabbedPanels">
                <ul class="TabbedPanelsTabGroup">
                  <li class="TabbedPanelsTab" tabindex="0" style="font-size:12px;background-color:#DED465;">
                  工作計劃
                  </li>
</ul>
</div>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.