EL表达式入门

一、引入

EL 全名为Expression Language,EL表达式主要有两个作用:
1. 获取数据
从各种类型的Web域中检索Java对象、获取数据(获取某个Web域中的对象、访问JavaBean的属性、访问list集合、访问map集合、访问数组)
2. 执行运算
EL表达式可以执行一些基本的关系运算、算数运算、逻辑运算

二、基本格式

${标识符}

注意
1、EL表达式检索Web域时,如果未指定域,则按照域的作用范围从小到大依次检索,即:pageContext->request->session->application
2、如果所检索的属性名不存在则返回空字符串

三、EL常用对象

对象名称 描述
pageScope 代表page域中用来保存属性的Map对象
requestScope 代表request域中用来保存属性的Map对象
sessionScope 代表session域中用来保存属性的Map对象
applicationScope 代表application域中用来保存属性的application对象
pageContext JSP页面中的pageContext对象
param 表示一个保存了所有请求参数的Map对象
paramValues 表示一个保存了所有请求参数的Map对象,对于每个请求参数返回的是一个String[]
header 表示一个保存了所有http请求头的Map对象
headerValues 同上,对于每一个请求头返回的是一个String[]
cookie 表示一个保存了所有cookie的Map对象
initParam 表示一个保存了Web应用所有初始化参数的Map对象

代码示例:

<%@page import="jspdemo2.Book"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%--为方便测试,添加的一些数据 --%>
<%
   Book[] books = new Book[]{new Book("book1",10.0),new Book("book2",20.0)};
   pageContext.setAttribute("books",books,PageContext.PAGE_SCOPE);
   pageContext.setAttribute("name","request_jingxin",PageContext.REQUEST_SCOPE);
   pageContext.setAttribute("name","session_jingxin",PageContext.SESSION_SCOPE);
   pageContext.setAttribute("name","application_jingxin",PageContext.APPLICATION_SCOPE);

   request.setCharacterEncoding("utf-8");
%>

<%--获取page域的属性及获取数组中的数据 和javaBean中的属性--%>
${pageScope.books[0].title }     <br/>
${pageScope.books[1].price }     <br/>

<%--获取其他域的属性 --%>
${requestScope.name }   <br/>
${sessionScope.name }   <br/>
${applicationScope.name }    <br/>


<%--利用pageContext获取其他域对象 --%>
${pageContext.request.characterEncoding }   <br/>
${pageContext.session.id }   <br/>
${pageContext.servletContext.serverInfo }    <br/>

<%--获取请求参数 --%>
<%--没有同名的参数 --%>
${param.username }   <br/>
<%--存在同名的参数 --%>
${paramValues.names }    <br/>



<%--获取请求头数据 --%>
${header.host }    <br/>
<%--与上一个等价 --%>
${header["host"] }    <br/>
<%--属性名中有-字符的,应该使用下面的格式 --%>
${header["accept-language"] }   <br/>


<%--获取Cookie --%>
${cookie.JSESSIONID.value }   <br/>

<%--获取初始化参数 --%>
${initParam.user }   <br/><br/>

<%--运算符的使用 --%>
${ 5/2 }    <br/>
${ 5%2 }    <br/>

${ 5>2 }    <br/>
${ 5<=2 }   <br/>

${ (5>2)&&(6>2) }    <br/>

<%--检查对象是否为空 --%>
${empty initParam.user }    <br/>
${initParam.user!=null?initParam.user:"hello" }    <br/>


</body>
</html>

猜你喜欢

转载自blog.csdn.net/venus14/article/details/78405841