EL表达式

EL表达式

一、什么是EL:

1.1、EL
– Expression Language 表达式语言
1.2、语法:
${EL表达式}
1.3、与JSP表达式区别:
JSP中使用的变量是脚本变量,而EL中的变量都是作用域变量,要操作的变量都在作用域中。

二、EL表达式的作用
2.1、用于表达式的运算。如:加、减、乘、除。
2.2、用于从作用域中取出数据

三、获取数据
3.1、在四个域中查找:比如在一个域中设置了“color”属性,现在获取
EL: ${color},功能与pageContext.findAttribute(“color”) 一样。
3.2、指定域获取数据
作用域 Java代码 EL的写法
页面域 pageContext.getAttribute(“color”); ${pageScope.color}
请求域 request.getAttribute(“color”); ${requestScope.color}
会话域 session.getAttribute(“color”); ${sessionScope.color}
上下文域 application.getAttribute(“color”); ${applicationScope.color}
自动查找 pageContext.findAttribute(“color”); ${color}

3.3、EL中11个隐式对象
隐含对象名称 描述
pageContext 代表页面上下文对象,可以在页面上调用get方法
pageScope 代表页面域中的Map对象
requestScope 代表请求域中的Map对象
sessionScope 代表会话域中的Map对象
applicationScopeScope 代表上下文域中的Map对象
param 得到表单提交参数,功能与:request.getParameter()相同
paramValues 得到表单提交参数,功能与:String[] request.getParameterValues()相同
header 得到请求头的数据 request.getHeader(“名字”)
headerValues 得到请求头的数据 request.getHeaders(“名字”)
cookie 得到请求的Cookie信息
initParam 相当于config.getInitParamter()得到web.xml中配置的参数

3.4、pageContext调用get的方法

作用 	JSP表达式 	EL的写法
当前工程路径 	<%=request.getContextPath() %> 	${pageContext.request.contextPath}
请求资源路径 	<%=request.getContextURL() %> 	${pageContext.request.contextURL}
访问者的IP 	<%=request.getRemoteAddr() %> 	${pageContext.request.remoteAddr}
当前会话的ID 	<%=request.getSession().getId() %> 	${pageContext.request.session.id}

3.5、得到Cookie中的值:

先通过EL得到指定cookie的对象,再通过name和value得到具体的名字和值
<%
Cookie c = new Cookie(“man”,”jack”);
response.addCookie(c);
%>

读取Cookie:

名字:cookie.man.name<值:
{cookie.man.value } <%– 调用 cookie.getValue()%>

3.6、EL表达式中[]和.的区别

如果一个变量名中有特殊的字符,则应用使用[“名字”];
比如获取header中host属性,一共有两种写法:
header[“host”]

{header.host }

若获取user-agent属性,只能使用中括号
${header[“user-agent”]}

四、EL表达式获取不同类型的数据
4.1获取JavaBean的属性值

<% 

   //创建一个对象 

   Student stu = new Student(“张三”, 20); 

   stu.setMale(true); 

   //把对象放到域 

   pageContext.setAttribute(“a”, stu); 

   %> 

   
姓名:${a.name}  年龄:${a.age}  性别:${a.male} 

4.2获取数组中的值

<% 

   String[] arr =  {“aaa”,”bbb”,”cccc”}; 

   pageContext.setAttribute(“arr”, arr); 

   %> 

取数组中的元素:

${arr[0]}

${arr[1]}

${arr[2]}

4.3获取Map中的值

<%

map.put(“n1”, “猪八戒”);

map.put(“n2”, “唐僧”);

map.put(“n3”, “孙悟空”);

//放在请求域中

request.setAttribute(“map”, map);

%>

${map.n1}

${map[“n2”]}

${map.n3}

4.4输出List中指定索引位置的元素

<%

book.add(“水浒传”);

book.add(“西游记”);

book.add(“红楼梦”);

session.setAttribute(“books”, book);
%>
${books[0] }

${books[1] }

${books[2] }

五、EL中使用表达式
5.1算术表达式 :
算术运算符 说明 范例 结果

  • 加 ${1+1} 2
  • 减 ${2-1} 1
  • 乘 ${1*1} 1
    /或div 除 ${5 div 2} 2.5
    %或mod 取余 ${5 mod 2} 1

5.2比较表达式

关系运算符 说明 	范例 	结果
==或 eq 	等于(equal) 	${1 eq 1} 	true
!= 或 ne 	不等于(not equal) 	${1 != 1} 	false
< 或 lt 	小于(Less than) 	${1 lt 2} 	true
<=或 le 	小于等于(Less than or equal) 	${1 <= 1} 	true
> 或 gt 	大于(Greater than) 	${1 > 2} 	false
>=或 ge 	大于等于(Greater than or equal) 	${1 >=1} 	true

5.3逻辑表达式 :

逻辑运算符 	说明 	范例 	结果
&& 或 and 	交集() 	${A and B} 	true / false
|| 或 or 	并集() 	${A || B } 	true / false
! 或 not 	非 	${not A} 	true / false

5.4三元运算:

${表达式?真:假}

5.5判空表达式:
5.5.1语法:

${empty 变量名} 判断变量名是否为空或空串,如果是,则返回true 

5.5.2作用:

1)判断一个变量是否为null

2)判断一个字符串是否是空串

3)判断一个集合是否有元素

 <% 

    request.setAttribute(“num”, 5); 

    request.setAttribute(“str”, “”); 

    //创建一个集合 

    ArrayList list = new ArrayList(); 

    pageContext.setAttribute(“list”, list); 

 %>
1)  创建一个变量是否为null 
${empty num}  
2)  创建一个字符串是否是空串 
${empty str} 
  1. 创建一个集合是否有元素
   ${empty list } 

5.6EL表达式的启用和禁用

5.6.1页面禁用

isELIgnored=true”  忽略EL表达式,EL不起作用。 

5.6.2 EL的转义

\ ${5 div 3 }   \表示这个表达式不起作用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值