1. 程式人生 > >jsp中的EL表達式

jsp中的EL表達式

返回值 pty [] 初始 parameter 獲取請求參數 方法 object 之前

[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元素符經常用來判斷集合或者字符串是否為空

jsp中的EL表達式