1. 程式人生 > >170819-關於EL表達式的知識點

170819-關於EL表達式的知識點

request 項目 屬性。 用戶 不能 ats ges -a 什麽

1 .EL表達式

[1] 簡介

> JSP表達式 <%= %> 用於向頁面中輸出一個對象。

> 到JSP2.0時,在我們的頁面中不允許出現 JSP表達式和 腳本片段。

> 使用EL表達式來代替JSP表達式 ,使用JSTL標簽來代替JSP腳本片段。

> EL表達式用來向頁面輸出內容

getAttribute();//四個域對象都可以使用//作用不是接收請求參數,在使用getAttribute方法之前必須先使用setAttribute()將屬性對方法域對象中;返回Object類型!

getParameter()://僅僅是request使用!用於接收請求參數【url,form表單中】;返回值String類型

[2] 基本語法

> ${表達式}

> EL表達式可以從域中獲取屬性。

- 使用 ${屬性名}

- 如果只填寫一個屬性名,EL表達式會自動做全域查找。

- 所謂的全域查找,就是按照page request session application四個域範圍內分別,找到就返回屬性,如果沒找到什麽都不返還。

- 我們還可以指定去哪個域查找 pageScope requestScope sessionScope applicationScope

- 例子: 查找request中屬性 ${requestScope.屬性名} 查找session中的屬性 ${sessionScope.屬性名}

- 註意:EL表達式只能獲取域中的屬性 EL表達式不能直接調用對象的方法

- 通過EL表達式讀取對象的屬性時,只需要${對象.屬性名} EL表達式會自動調用對象的對應的getter方法,通過將屬性名首字母大寫,然後加上個get 註意:只要有屬性,就可以一直點下去,也就說對象的屬性是對象的話,我們也可以通過對象的屬性的屬性的方式調用!

- 當讀取一些名字比較特殊的屬性時,這種特殊值必須要指定域,例如屬性名帶-: ${requestScope[‘屬性名‘]}

[3] 隱含對象

> EL中一共有11個內置對象。

- pageContext 類型 PageContext 它和JSP中pageContext是一個東西 作用 可以獲取到JSP中其他的隱含對象 例如:可以獲取項目名: ${pageContext.request.contextPath }

- pageScope 類型:Map<String,Object> 代表:page域中的屬性 作用:可以獲取到page域中的屬性

- requestScope 類型:Map<String,Object> 代表:request域中的屬性 作用:可以獲取到request域中的屬性

- sessionScope 類型:Map<String,Object> 代表:session域中的屬性 作用:可以獲取到session域中的屬性

- applicatScope 類型:Map<String,Object> 代表:application域中的屬性 作用:可以獲取到application域中的屬性

- param 類型: Map<String , String> 代表:用戶發送的請求參數 作用:可以獲取請求參數 用法: ${param.參數名}

- paramValues 類型:Map<String , String[]> 代表:一個請求參數對應的多個值 用法: ${paramValues.參數名[索引]}

- header 作用:可以獲取到用戶發送的請求頭 類型:Map<String , String> 例如:獲取用戶的系統信息 ${header[‘User-Agent‘]} ?

- headerValues 類型: Map<String , String[]> 作用:可以獲取一個頭的多個值 ?

- initParam; 類型:Map<String , String> 作用:獲取整個WEB應用的初始化參數 ?

- cookie 類型:Map<String , Cookie> 作用:用來獲取Cookie

[4] 運算

> 在EL中可以直接使用運算符進行運算。

> 在EL中可以使用Empty元素符: 如果值為null , empty則返回 true 如果為空串, 則返回 true 空的集合 返回true

> 所以empty元素符經常用來判斷集合或者字符串是否為空

170819-關於EL表達式的知識點