EL表達式語言

一、EL表達式簡介

  EL,Expression Language。

  EL主要作用:

     獲取數據:EL表達式主要替換jsp頁面中的腳本表達式,從各種類型的web域中檢索Java對象、獲取數據。(某個web域中的對象,訪問JavaBean的屬性、訪問list集合、訪問map集合、訪問數組)

    執行計算:利用表達式可以在jsp頁面中執行一些基本的關係運算、邏輯運算和算術運算,以及在jsp頁面中完成一些簡單的邏輯運算。

    獲取web開發常用對象::EL表達式定義了一些隱式對象,利用這些隱式對象,web開發人員可以很輕鬆的獲得對web常用對象的引用,從而獲取這些對象中的數據。

    調用Java方法:EL表達式允許用戶開發自定義EL函數,以在jsp頁面中通過EL表達式調用Java類的方法。


二、EL注意事項

  EL表達式是JSP2.0規範的一門技術,所以,如果想正確解析EL表達式,需要使用支持Servlet2.4或JSP2.0技術的web服務器。


三、獲取域對象中的數據

  使用EL表達式獲取數據語法:${標識符}。

  EL表達式語句在指定的時候,會調用pageContext.findAttribute()方法,用標識符爲關鍵字,分別從page、request、session和application四個域對象中查找對象,找到則返回相應對象,找不到則返回""。

<%@page import="cn.vo.User"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表達式</title>
  </head>
  
  <body>
	<h3>獲取域對象中的值</h3>
	<%
		request.setAttribute("name", "郭美美");
	 %>
	 ${name}
	 <h3>獲取域中數組的值</h3>
	 <%
	 	request.setAttribute("str", new String[]{"哈哈","呵呵","嘻嘻","笨笨"});
	  %>
	  ${str[3] }
	  <h3>獲取域中List集合的值</h3>
	  <%
	  	List<String> list = new ArrayList<String>();
	  	list.add("哈哈");
	  	list.add("呵呵");
	  	request.setAttribute("list",list);
	   %>
	  ${list[0]}
	  <h3>獲取域中Map集合的值</h3>
	  <%
	  	Map<String,String> map = new HashMap<String,String>();
	  	map.put("aa", "哈哈");
	  	map.put("bb", "呵呵");
	  	request.setAttribute("map",map);
	   %>
	 	${map.aa }
	 	<h3>獲取域中List集合的對象</h3>
	 	<%
	 		List<User> u = new ArrayList<User>();
	 		u.add(new User("哈哈","呵呵",new Date()));
	 		u.add(new User("哈哈","呵呵",new Date()));
	 		request.setAttribute("u",u);
	 	 %>
	 	 ${u[0].username}
	 	 ${u[1].password}
  </body>
</html>


四、EL表達式的運算

wKiom1jMw7ril4yXAAGDowycneo993.png

五、獲取web開發常用對象

  EL表達式定義了11個隱含對象,使用這些對象可以很方便的獲取web開發中的一些常見對象,並讀取這些對象的數據。

  語法:${隱式對象名稱} 獲得對象的引用


隱式對象名稱描述
pageScope代表page域中用於保存的Map對象
requestScope代表request域中用於保存的Map對象
sessionScope代表session域中用於保存的Map對象
applicationScope代表application域中用於保存的Map對象


隱式對象名稱描述
param表示一個保存了所有請求參數的Map對象
paramValues表示一個保存了所有請求參數的Map對象,它對於某個請求參數,返回的是一個String[]

其實,param相當於getParameter();而paramValues相等於getParameterValues();

隱式對象名稱描述
header獲取請求頭的信息
headerValues獲取請求頭的信息
隱式對象名稱描述
cookie表示一個保存了所有cookie的Map對象
隱式對象名稱描述
initParam表示一個保存了所有web應用初始化參數的Map對象
隱式對象名稱描述
pageContext
對應於jsp頁面中的pageContext對象





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