在Web程序設計中,利用EL表達式,可以直接計算並顯示錶達式的值,簡化了JSP網頁的設計。
一、EL的語法形式
所有的EL都是以“${”開始,以“}”結尾的,語法格式:${expression}
功能:在頁面上顯示錶達式expression的值。
二、存取運算符
在EL中,對數據值的存取是通過“[]”或“.”實現的。
其格式爲:${name.property} 或 ${name["property"]} 或 ${name[property]}。
PS:
1》“[]”主要用來訪問數組、列表或其他集合對象的屬性。
2》“.”主要用於訪問對象的屬性。
三、EL運算符
EL支持的運算符和Java語言運算符類似,主要有:算術運算符、關係運算符、邏輯運算符等
類別 |
運算符 |
說明 |
類別 |
運算符 |
說明 |
算術運算符 |
+ |
加 |
關係運算符 |
< (或lt) |
小於 |
- |
減(或負號) |
> (或gt) |
大於 |
||
* |
乘 |
<= (或le) |
小於等於 |
||
/(或div) |
除 |
>= (或ge) |
大於等於 |
||
%(或mod) |
取餘 |
==(或eq) |
等於 |
||
邏輯運算符 |
&& (或and) |
與 |
!= (或ne) |
不等於 |
|
|| (或or) |
或 |
特殊運算符 |
x?y:z |
條件運算符 |
|
! (或not) |
非 |
empty |
判定是否爲空 |
四、EL內部對象
EL提供了11個可直接使用的內部對象
類別 |
對象 |
描述 |
JSP |
pageContext |
獲取當前JSP頁面的信息 ,可訪問JSP的8個內置對象 |
作用域 |
pageScope |
獲取頁面(page)範圍的屬性的值 |
requestScope |
獲取請求(request)範圍的屬性的值 |
|
sessionScope |
獲取會話(session)範圍的屬性的值 |
|
applicationScope |
獲取應用(application)範圍的屬性的值 |
|
請求參數 |
param |
獲取單個指定請求參數的值 |
paramValues |
獲取請求參數的所有請求參數值數組 |
|
請求頭 |
header |
獲取單個指定請求頭信息的值 |
headerValues |
獲取請求頭信息的所有請求頭值數組 |
|
Cookie |
cookie |
獲取request中的Cookie集 |
初始化參數 |
initParam |
獲取初始化參數信息 |
五、使用樣例:
兩個JSP頁面,實現如圖2-6所示的顯示結果。
其中,form.jsp是提交信息的頁面,
在doSubmit.jsp頁面中通過param和paramValues對象獲取form.jsp頁面提交的信息並顯示。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="doSubmit.jsp" method="post">
姓名 <input type="text" name="name"><br/>
性別 <input type="text" name="sex"><br/>
語言 <input type="text" name="lang"><br/>
電話 <input type="text" name="regTelephone"><br/>
郵件 <input type="text" name="email"><br/>
簡介<textarea rows="2" cols="30" name="intro"></textarea><br/><br>
愛好:
音樂<input type="checkbox" name="aihao" value="音樂"/>
籃球<input type="checkbox" name="aihao" value="籃球"/>
足球<input type="checkbox" name="aihao" value="足球"/><br/><br>
<input type="submit" value="提交"/> <input type="reset" value="重置"/>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>您提交的內容如下:</h2>
<% request.setCharacterEncoding("utf-8"); %>
姓名:${param.name}<br/>
性別:${param.sex}<br/>
外語:${param.lang}<br/>
電話:${param.regTelephone}<br/>
email:${param.email}<br/>
個人簡介:${param.intro}<br/>
愛好:${paramValues.aihao[0]} ${paramValues.aihao[1]} ${paramValues.aihao[2]}
</body>
</html>