EL表達式和JSTL標籤庫使用詳解

JavaBean在JSP中的侷限
獲取JavaBean屬性必須要實例化
強制類型轉化


<%	
    Employee employee = (Employee)request.getAttribute("employee");
    Computer comp = employee.getComputer();
    String manufacturer = comp.getManufacturer();
%>

如果頁面編寫出現邏輯錯誤,將會導致代碼執行錯誤,並且JSP頁面編譯頁面時也會產生錯誤


解決辦法
使用EL表達式簡化

什麼是EL 
EL即Expression Language(表達式語言)
EL的功能
替代JSP頁面中的複雜代碼
EL的語法
${  EL exprission }
${  bean.name } 或  ${  bean['name'] }

${bean.name}實質是調用bean的getName()方法

注: 1 el通過.和[]來存取數據。  例如${applicationScope.user.userName}或者${applicationScope.user["userName"]}       

  2 如果存取的屬性名稱包含一些特殊符號,如"."或者是"-"等非字母或數字符號必須用[]  

3 applicationScope.user["user-Name"]  

  4 如果使用變量來傳入,那麼也只能使用[].例如 

<%String data="username";%> 

${applicationScope.user[data]}   

5 當然有四個隱含對象:applicationScope,sessionScope,requestScope,pageScope.與application  ,session,request,pageContext相對應.例如applicationScope用 來獲取application範圍的屬性值  

自動轉換類型 
EL得到某個數據時可以自動轉換類型 
對於類型的限制更加寬鬆
使用簡單 
相比較在JSP中嵌入Java代碼,EL應用更簡單

EL語法 

以“${”作爲開始,以“}”作爲結束

直接使用變量名獲取值$
${  username }



變量屬性範圍名稱

屬性範圍            EL中的名稱
page pageScope,例如${pageScope.username},表示在page範圍內查找username變量,找不到返回Null
request requstScope
session sessionScope
application applicationScope


EL運算符
運算符”[ ]”
運算符”.”
作用:
獲取對象屬性


獲取對象集合中的數據
在Session中保存了一個(list)集合users

簡單應用:輸出姓名顯示

<%
    Map names = new HashMap();
    names.put("one","LiYang");
    names.put("two","WangHua");
    request.setAttribute("names",names);
%>
姓名:${names.one}<br/>
姓名:${names["two"] }<br/>


EL隱式對象介紹 


對象名稱 說  明
pageScope 返回頁面範圍的變量名,這些名稱已映射至相應的值
requestScope 返回請求範圍的變量名,這些名稱已映射至相應的值
sessionScope 返回會話範圍的變量名,這些名稱已映射至相應的值
applicationScope 返回應用範圍內的變量,並將變量名映射至相應的值
param 返回客戶端的請求參數的字符串值
paramValues 返回映射至客戶端的請求參數的一組值
pageContext 提供對用戶請求和頁面信息的訪問


使用了EL表達式可以簡化JSP頁面代碼,但是如果需要進行邏輯判斷怎麼辦?

點擊查看JSTL標籤庫介紹

發佈了56 篇原創文章 · 獲贊 22 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章