javaweb基礎整理隨筆------jstl與el表示式
雖然jsp中可以寫java程式碼,但是現在不推薦這麼做。
jsp雖然本質是servlet,但是主要作用只是檢視,檢視的任務就是顯示響應,而不是在JSP中做任何關於程式控制和業務邏輯的事情。所以在JSP頁面中應該儘可能少的、或者是完全不出現Java程式碼。
JSP標準動作中沒有提供這種巢狀式訪問機制,所以要想實現這個功能,就只能在JSP頁面中通過Java程式碼來讀取 Object型別的屬性。從JSP2.0之後,可以使用EL表示式來處理這樣的的問題。
EL表示式語言是一種簡單的語言,提供了在JSP中簡化表示式的方法,目的是為了儘量減少JSP頁面中的Java程式碼,使得JSP頁面的處理程式編寫起來更加簡潔,便於開發和維護。
el表示式語言用法:${ }
作用:讀取四大域中的資料
注意:如果要忽略el表示式,1、在page標籤中設定屬性isELIgnored值為true 2、在表示式前加\
全域查詢:${name}
page域:${pageScope.name } <!-- 取page域中name的值 -->
request域:${requestScope.name }
session域:${sessionScope.name }
application域:${applicationScope.name }
javaBean規範:
1.必須要有一個預設構造方法
2.提供get/set方式,
3.有get/set方法的成員變數,屬性名稱由get/set方法去掉get/set後,首字母小寫
el表示式提供兩種運算子來存取資料 . []
.:在el表示式中 獲取物件中的資料,有get方法就能獲取到,不一定要有變數
[]:一樣通過下標取集合裡的元素
而jstl則是開放原始碼的JSP標籤庫,封裝了jsp應用的通用核心功能
由於可以完成對邏輯部分的大部分實現,本質上也減少了再jsp中使用指令碼語言編譯也就是java程式碼的數量。
舉例
1.core:核心標籤庫
<c:set>設定
var:變數名
value:變數值
scope:域,預設是page
<c:out>輸出
value:可以是字串常量,可以是el表示式
defalut:當輸出的內容為null時,則輸出此值
escapeXml:轉義,預設值為true 預設轉 就是當成字串
<c:if>
<c:choose><c:when></c:when>...<c:otherwise></c:otherwise></c:choose>
<c:remove>
<c:foresch>
<c:redirect>
<c:url>
2.fmt:格式化標籤庫
3.sql:資料庫標籤庫
4.xml:xml標籤庫
<c:set var="salary" value="6000"></c:set>
<c:choose>
<c:when test="${salary < 2000}">
<p>溫飽</p>
</c:when>
<c:when test="${salary >2000 && salary < 5000}">
<p>小康</p>
</c:when>
<c:when test="${salary > 5000}">
<p>有錢了</p>
</c:when>
<c:otherwise> <!-- 上述選擇都不是 otherwise -->
<p>。。。</p>
</c:otherwise>
</c:choose>
&n