EL表达式迅速入门

什么是EL表达式?

EL表达式全名是Expression Language。EL的主要作用有:

  1. 获取数据
  2. 执行运算
  3. 获取web开发常用对象
  4. 调用Java方法

不过有一点需要注意的是使用EL表达式的时候,该JSP文件的指令中需要设置<%@ page isELIgnored="false" %>。(默认就是false)

 

1.获取数据

EL表达式获取数据的语法    ${ 标识符 }

EL表达式在执行的时候会自动调用pageContext.findAttribute方法,并使用该标识符作为关键字,分别从page,request,session,application四个域中查找相应的对象(范围从小到大的查找),找到则返回对象,找不到则返回“  ”(注意这里不是null,是空字符串)。

<%@page import="com.xml.ov.User2"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.Map"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ 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>
<%	
	application.setAttribute("name", "john");
	pageContext.setAttribute("name", "tom");
	request.setAttribute("name", "sam");
	session.setAttribute("name", "ana");

%>
<!-- 默认找范围最小的那个域里的name -->
${name}
${pageScope.name}
${requestScope.name}

<hr>
<h3>域中的数组集合</h3>
<%
	String[] array = {"ana","bob","cindy"};
	request.setAttribute("array", array);
%>
${array[1]}

<hr>
<h3>域中集合的值</h3>
<%
	List<String> list = new ArrayList();
	list.add("ana");
	list.add("bob");
	list.add("cindy");
	request.setAttribute("list", list);
%>
${list.get(0)}

<hr>
<h3>域中Map集合的值</h3>
<%
	Map<String,String> map = new HashMap<String,String>();
	map.put("a", "ana");
	map.put("b.b", "bob");
	request.setAttribute("map", map);
%>
${map.a}
<!-- 如果key太复杂,就用方括号和双引号括起来代表一个key -->
${map["b.b"]}

<hr>
<h3>域中集合存对象的值</h3>
<%
	List<User2> list2 = new ArrayList<User2>();
	list2.add(new User2("ana","123"));
	list2.add(new User2("bob","456"));
	request.setAttribute("list2", list2);
%>
${list2[0].username}
</body>
</html>

 

2.执行运算 

 

			运算符输出运算结果,比较符输出true或者false
                        <h4>加法运算</h4>
			${ n1 + n2 }

			<h3>关系运算</h3>
			<h4>大于</h4>
			${ n1 > n2 }	${ n1 gt n2 }

			<h4>小于</h4>
			${ n1 < n2 }	${ n1 lt n2 }

			<h4>等于</h4>
			${ n1 == n2 }	${ n1 eq n2 }

			<h4>不等于</h4>
			${ n1 != n2 }	${ n1 ne n2 }

			<h4>大于等于</h4>
			${ n1 >= n2 }	${ n1 ge n2 }

			<h4>小于等于</h4>
			${ n1 <= n2 }	${ n1 le n2 }

			<h3>逻辑运算</h3>
			<h4>与</h4>
			${ n1 > n2 && n3 > n4 }		${ n1 > n2 and n3 > n4 }

			<h4>或</h4>
			${ n1 > n2 || n3 > n4 }		${ n1 > n2 or n3 > n4 }

			<h4>非</h4>
			${ !(n1 > n2) }		${ not (n1 > n2) }

 

3.直接获取WEB开发中的对象 

 

EL表达式中保留了11个隐含对象,这些可以直接使用的隐含对象可以很方便的获取web开发的一些常见对象。

语法:${ 隐式对象名称 } :获取对象的引用

			<h4>EL的WEB对象</h4>
			${ param.username }

			<h4>获取请求头</h4>
			${ header.referer }
			
			<h4>获取全局初始化参数</h4>
			${ initParam.username }
			
			<h4>pageContext对象</h4>
			${ pageContext.request.contextPath }	

 

4.调用Java的方法

其实这个用的不是很多,详情请点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值