EL表達式 1. 概念:Expression Language 表達式語言 2. 作用:替換和簡化jsp頁面中的java代碼的編寫 3. 語法${表達式} 4. 註意: jsp預設支持el表達式。如果要忽略el表達式 1. 設置jsp中page指令中:isELIgnored=“true”忽略當前js ...
EL表達式
- 概念:Expression Language 表達式語言
- 作用:替換和簡化jsp頁面中的java代碼的編寫
- 語法${表達式}
- 註意:
- jsp預設支持el表達式。如果要忽略el表達式
- 設置jsp中page指令中:isELIgnored=“true”忽略當前jsp頁面中所有的el表達式
- \${表達式}:忽略當前這個el表達式
- jsp預設支持el表達式。如果要忽略el表達式
- 使用:
-
運算
- 運算符
- 算數運算符:+ - * /(div) %(mod)
- 比較運算符:> < >= <= == !=
- 邏輯運算符:&&(and) ||(or) !(not)
- 空運算符:empty
- 功能:用於判斷字元串,集合,數組對象是否為null並且長度是否為0
- ${empty list}:用於判斷字元串,集合,數組對象是否為null並且判斷長度是否為0
- ${not empty str}:表示判斷字元串、集合、數組對象是否不為null,並且長度>0
- 運算符
-
獲取值
- el表達式只能從域對象中獲取值
- 語法
- ${功能變數名稱稱.鍵名}:從指定域中獲取指定鍵的值
- 功能變數名稱稱:
- pageScope --> pageContext
- requestScope -->request
- sessionScope -->session
- applicationScope -->application(ServletContext)
- 舉例:在request域中存儲了name=張三
- 獲取:${requestScope.name}
- 功能變數名稱稱:
- ${鍵名}:標識依次從最小的域中查找是否有該鍵對應的值,直到找到為止
- ${name}
- ${功能變數名稱稱.鍵名}:從指定域中獲取指定鍵的值
- 獲取對象、List集合、Map集合的值
- 對象:${功能變數名稱稱.鍵名稱.屬性名}
- 本質上會去調用對象的getter方法
- List集合:${功能變數名稱稱.鍵名[索引]}
- Map集合:
- ${功能變數名稱稱.鍵名.key名稱}
- ${功能變數名稱稱.鍵名[“key名稱”]}
- 對象:${功能變數名稱稱.鍵名稱.屬性名}
-
隱式對象
-
el表達式中有11個隱式對象
-
pageContext
- 獲取jsp其他八個內置對象
- ${pageContext.request.contextPath}:動態獲取虛擬目錄
- 獲取jsp其他八個內置對象
-
-
JSTL
-
概念 :JavaServer Pages Tag Library JSP標準庫
- 是由Apache組織提供的開源免費的jsp標簽
-
作用:用於簡化和替換jsp頁面上的java代碼
-
使用步驟
- 導入jstl相關的jar包
- 引入標簽庫:taglib指令:<% taglib %>
- 使用標簽
-
常用的JSTL標簽
-
if :相當於java代碼的if語句
<% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%> <c:if test="xxx"> <h1>hello</h1> </c:if> /* 1. 屬性 * test必須屬性,接收boolean表達式,正確則執行,不正確不執行 * 一般情況下,test屬性值會結合el表達式一起用 */
-
choose:相當於java代碼的switch語句
<% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%> <%-- 完成數字編號對應星期几案例 1.域中存儲一數字 2.使用choose標簽取出數字 相當於switch聲明 3.使用when標簽做數字判斷 相當於case 4.otherwise標簽做其他情況的聲明 相當於default --%> <% request.setAttribute("number",3); %> <c:choose> <C:when test="${number == 1}">星期一</c:when> <C:when test="${number == 2}">星期二</c:when> <C:when test="${number ==3}">星期三</c:when> <C:when test="${number == 4}">星期四</c:when> <C:when test="${number == 5}">星期五</c:when> <C:when test="${number == 6}">星期六</c:when> <C:when test="${number == 7}">星期日</c:when> <c:otherwise>數字輸入有誤</c:otherwise> </c:choose>
-
foreach:相當於java代碼的for語句
<% taglib prefix="c" uri="http://java.sun.com/jsp/jstl1/core"%> <%-- foreach:相當於java代碼的for語句 1.完成重覆的操作 2.遍歷容器 1.完成重覆操作 屬性: begin:開始值 end:結束值 var:臨時變數 step:步長 varstatus:迴圈狀態對象 index:元素中元素的索引,從0開始 count:迴圈次數,從1開始 2.遍歷容器 屬性: items:容器對象 var:容器元素中的臨時變數 varstatus:迴圈狀態對象 index:元素中元素的索引,從0開始 count:迴圈次數,從1開始 --%> //完成重覆操作 <c:foreach begin = "1" end = "10" var = "i" step = "1"> ${s.index} ${s.count} </c:foreach> //遍歷容器 <c:foreach items = "${list}" var="str" varStatus = "s"> ${s.index} ${s.count} ${s.str} </c:foreach>
-