EL表達式的使用及編寫和使用EL表達式的自定義函數

什麼是EL表達式

Expression Language————表達式語言html


EL表達式的做用

獲取數據web

執行運算數組

獲取Web開發經常使用對象cookie

執行Java方法session


獲取數據:

<%
    User user = new User("旺財", "幸福路", 18);
    pageContext.setAttribute("pageContextUser", user);
    request.setAttribute("requestUser", user);
    session.setAttribute("sessionUser", user);
    application.setAttribute("applicationUser", user);
%>

<h2>獲取page域對象</h2>
${pageContextUser.name}----${pageContextUser.addr}-----${pageContextUser.age}
<br/>
${pageScope.pageContextUser.name}----${pageScope.pageContextUser.addr}-----${pageScope.pageContextUser.age}
<hr />

<h2>獲取request域對象</h2>
${requestUser.name}----${requestUser.addr}-----${requestUser.age}
<br/>
${requestScope.requestUser.name}----${requestScope.requestUser.addr}-----${requestScope.requestUser.age}
<hr />

<h2>獲取session域對象</h2>
${sessionUser.name}----${sessionUser.addr}-----${sessionUser.age}
<br/>
${sessionScope.sessionUser.name}----${sessionScope.sessionUser.addr}-----${sessionScope.sessionUser.age}
<hr />

<h2>獲取application域對象</h2>
${applicationUser.name}----${applicationUser.addr}-----${applicationUser.age}
<br/>
${applicationScope.applicationUser.name}----${applicationScope.applicationUser.addr}-----${applicationScope.applicationUser.age}
<hr />
<!-- 
    EL表達式獲取數據的規律:
    1.EL表達式只能獲取四大域對象的數據
    2.在沒有指定獲取哪一個域的時候從小域到大域開始遍歷獲取
    3.固然也能夠指定域:pageScope,requestScope,sessionScope,applicationScope
    4.因此若是把對象存在sessionScope或者applicationScope那麼仍是指定一下域,這樣子EL表達式就不用遍歷了
 -->
 
<hr />
<%
User user2 = new User("小強", "健康街", 28);
User[] users  = {user,user2};
List<User> userList = new ArrayList<User>();
userList.add(user);
userList.add(user2);
pageContext.setAttribute("arrayUser", users);
pageContext.setAttribute("listUser", userList);
 %>
 
<h2>利用.和[]獲取數組中的對象中的值</h2>
${pageScope.arrayUser[0].name }---${pageScope.arrayUser[0].addr }---${pageScope.arrayUser[0].age }
<br/>
${pageScope.arrayUser[1].name }---${pageScope.arrayUser[1].addr }---${pageScope.arrayUser[1].age }
<hr />

<h2>利用.和[]獲取集合中的對象中的值</h2>
${pageScope.listUser[0].name }---${pageScope.listUser[0].addr }---${pageScope.listUser[0].age }
<br/>
${pageScope.listUser[1].name }---${pageScope.listUser[1].addr }---${pageScope.listUser[1].age }
<hr />

<h2>利用[]獲取對象中的值</h2>
${pageScope.listUser[0]["name"] }---${pageScope.listUser[0]["addr"] }---${pageScope.listUser[0]["age"] }
<br/>
${pageScope.listUser[1]["name"] }---${pageScope.listUser[1]["addr"] }---${pageScope.listUser[1]["age"] }

<hr />
<!-- 
    EL表達式獲取數據時.和[]的區別
    在集合或者數組中能夠使用[]輸入下標來直接獲取值
    而.後面不能跟有數字,因此不能做爲下標的獲取標識來使用
    []中跟的值要麼是數字,要麼要用""引發來
    .後面跟的東西既不能是數字,也不能用""引發來
 -->
<hr />


EL表達式獲取在Web開發中經常使用的對象

EL表達式的11個隱式對象app

pageContextjsp

pageScope函數

requestScopespa

SessionScopecode

ApplicationScope

cookie

initParam

param

paramValues

header

headerValues


注意:若是頭裏面有「-」 ,例Accept-Encoding,則要headerValues[「Accept-Encoding」]

      ${cookie.key}取的是cookie對象,如訪問cookie的名稱和值,須${cookie.key.name}或${cookie.key.value}



EL執行運算

${3+2*8+5/8 }


簡易版自定義函數編寫配置方法:

    EL表達式語法容許開發人員開發自定義函數,以調用Java類的方法

    在EL表達式中調用的只能是Java類的靜態方法

    這個Java類的靜態方法須要在TLD(Tagliary Definition)文件中描述,才能夠被EL表達式調用。

    EL自定義函數用於擴展EL表達式的功能,能夠讓EL表達式完成普通Java程序代碼所能完成的功能。

1.編寫調用自定義函數的類,編寫類中具體實現的靜態方法

2.編寫tld文件在web-inf目錄下

3.jsp中使用taglib指令導入自定義函數庫

4.使用

5.使用圖解


求關注啊。。。。。。。

相關文章
相關標籤/搜索