在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>