EL表示式 與JSTL標籤

如是清歡發表於2020-11-21

什麼是EL表示式?

  1. 概念:Expression Language 表示式語言
  2. 作用:替換和簡化jsp頁面中java程式碼的編寫
  3. 語法:${表示式}
  4. 注意:
    • jsp預設支援el表示式的。如果要忽略el表示式
	1. 設定jsp中page指令中:isELIgnored="true"     忽略當前jsp頁面中所有的el表示式 不解析
	2. \${表示式} :忽略當前這個el表示式
  1. 使用:
    1. 運算:
* 運算子:
				1. 算數運算子: + - * /(div) %(mod)
				2. 比較運算子: > < >= <= == !=
				3. 邏輯運算子: &&(and) ||(or) !(not)
				4. 空運算子: empty
* 功能:用於判斷字串、集合、陣列物件是否為null或者長度是否為0
* ${empty list}:判斷字串、集合、陣列物件是否為null或者長度為0
* ${not empty str}:表示判斷字串、集合、陣列物件是否不為null 並且 長度>0
  1. 獲取值
    1. el表示式只能從域物件中獲取值 ***********
    2. 語法:
1. ${域名稱.鍵名}:從指定域中獲取指定鍵的值
		* 域名稱: 從小到大           從相應中獲取
		1. pageScope		--> pageContext
		2. requestScope 	--> request
		3. sessionScope 	--> session
		4. applicationScope --> application(ServletContext)
		* 舉例:在request域中儲存了name=張三
		* 獲取:${requestScope.name}
2. ${鍵名}:表示依次從最小的域中查詢是否有該鍵對應的值,直到找到為止。
3. 獲取物件、List集合、Map集合的值
			1. 物件:${域名稱.鍵名.屬性名}
				* 本質上會去呼叫物件的getter方法

			2. List集合:${域名稱.鍵名[索引]}

			3. Map集合:
				* ${域名稱.鍵名.key名稱}
				* ${域名稱.鍵名["key名稱"]}
  1. 隱式物件:
    * el表示式中有11個隱式物件
    * pageContext:
    * 獲取jsp其他八個內建物件
    * ${pageContext.request.contextPath}:動態獲取虛擬目錄

什麼是JSTL標籤?

  1. 概念:JavaServer Pages Tag Library JSP標準標籤庫
    * 是由Apache組織提供的開源的免費的jsp標籤 <標籤>

  2. 作用:用於簡化和替換jsp頁面上的java程式碼

  3. 使用步驟:
    1. 匯入jstl相關jar包
    2. 引入標籤庫:taglib指令: <%@ taglib %>
    3. 使用標籤

  4. 常用的JSTL標籤

  1. if:相當於java程式碼的if語句
1. 屬性:
	 * test 必須屬性,接受boolean表示式
	 * 如果表示式為true,則顯示if標籤體內容,如果為false,則不顯示標籤體內容
	 * 一般情況下,test屬性值會結合el表示式一起使用
2. 注意:
	 * c:if標籤沒有else情況,想要else情況,則可以在定義一個c:if標籤
  1. choose:相當於java程式碼的switch語句
1. 使用choose標籤宣告         			相當於switch宣告
2. 使用when標籤做判斷         			相當於case
3. 使用otherwise標籤做其他情況的宣告    	相當於default
  1. foreach:相當於java程式碼的for語句

相關文章