EL表達式取值

1.EL表達式的語法格式很簡單:

以前編寫jsp代碼時,如果要獲取表單中的用戶名,一般使用 <%=request.getParameter("name")%>,這樣當然也可以獲取到值,但是又把html代碼和java代碼混到一起,看起來比較亂套。現在使用EL表達式的話就比較簡潔了:${param.name}就可以解決了。

注意:${表達式} 表達式部分不需要加引號,如果寫成 ${"param.name"} ,那麼頁面上顯示出來的就不是表單中name的值了,而是 "param.name" 這個字符串。表達式與開始符和終結符之間的空格被忽略不計。如果表達式的值爲null,那麼頁面將顯示一個空格而不是null。

2.EL的兩個運算符   "." 和 "[]"

${param.name} 和 ${param["name"]} 是等價的,但是當要存取的屬性名稱中包含有一些特殊字符如 "." 或 "-" 等非字母或數字的符號 或者 在使用動態取值時,就一定要使用 "[]" 運算符。

3.EL表達式的取值範圍

pageScope、requestScope、sessionScope、applicationScope

如果沒有給定參數名的取值範圍,系統默認從page範圍中查找,找不到則找request,一次類推,都找不到時傳回null。

例如,存入一個session範圍的值:<% session.setAttribute("u", "hello,EL") %>

那麼,傳統方式取值:<% session.getAttribute("u") %>。使用EL表達式取值:${sessionScope.u} 或者 ${u}

4.EL表達式可以自動轉換類型

傳統代碼:

1<%
2Stringage=request.getParameter("age");
3intagei=Integer.parseInt(age);
4out.println(age+10);
5%>

使用EL表達式:

1${user.age+10}

5.EL表達式的內置對象

(1)與範圍有關的內置對象

pageScope、requestScope、sessionScope、applicationScope

(2)與輸入有關的內置對象

param 和 paramValues 用來獲取表單中提交的信息。前者返回 String 類型數據,後者返回 String[] 類型的數據。如 ${paramValues.name}。

(3)其他隱含對象

Cookie

header  如:${header["UserAgent"]} 獲取瀏覽器的版本信息

headerValues 

initParam  如:${initParam.DBDriver} 獲取web.xml中配置的相關參數

pageContext 如:${pageContext.request.remoteAddr} 獲取用戶的IP地址

6.特別注意:

通過獲得的參數進行比較判斷時,要這樣比較:${param.name1 == param.name2}

empty 運算符用於判斷值是否爲 null 或 空 。 ${empty null} ${empty ""}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章