EL表达式

EL表达式

EL基础

1. EL表达式:解析Java代码,输出在页面上

语法:${ 代码 }

2. 忽略EL表达式,进行原样输出

1.在page中添加代码,isELIgnored="true",忽略当前的jsp页面的el表达式。
	例:
		<%@ page contentType="text/html;charset=UTF-8" language="java"  	isELIgnored="true" %>

2. \${表达式} 忽略当前el表达式。
	例:
		\${3>4}
	
3. 运算符在EL中的表示
	1. 算数运算符:+   -   *   /(div)   %(mod)
		例:
			${3+4}<br>		
			${3 div 4}<br>
	
	2. 比较运算符:>  <   >=   <=   ==   !=
		例:
			${3>=4}<br>	
	
	3. 逻辑运算符:&&(and)	 ||(or) 	!(not)
		例:
			${3>4&&3<4}<br>
	
	4. 空运算符: empty,判断字符串、集合、数组对象是否为null,并且长度是否为0
		例:
			<%
			String str="abc";
			request.setAttribute("str",str);
			List list= new ArrayList();
			request.setAttribute("list",list);
			%>
			
			${empty str}<%--判断是否为空、长度是否为0--%>
			${not empty str}<%--判断是否不为空、长度大于0--%>
			${not empty list}<br><%--判断是否不为空、长度大于0--%>

EL获取域中的数据

1. el表达式只能从域对象中获取值
	2. 语法∶
		1. ${域名称.键名}:从指定域中获取指定键的值
			*域名称∶范围从小到大
				1. pageScope--> pageContext
						↓
				2. requestScope--> request
						↓
				3. sessionScope--> session
						↓
				4. applicationScope --> application (ServletContext)
		    	例:	
				<%
			   	//在域中存储数据
			    request.setAttribute("name","张三");
			    session.setAttribute("name","李四");
				%>
				<h1>el获取值</h1>
				${requestScope.name}<br>
				${sessionScope.haaa}<br><%--如果不存在,则显示空字符串--%>
				
	    	2. ${键名}1. 表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
	    			${name}
				例:	
					<%
					    //在域中存储数据
					    request.setAttribute("name","张三");
					    session.setAttribute("name","李四");
					%>
					<h1>el获取值</h1>
					${name}<%--从域中寻找对应的键名,输出结果为张三--%>

EL获取域中对象、List集合、Map集合的值

1. 对象∶${域名称.键名.属性名}
       1. 本质上会去调用对象的getter方法,通过的是对象的属性来获取setter和getter方法,去掉set或get, 在将剩余部分,首字母变小写setName-> Name-> name
		例:
			<%
			User user =new User();
			user.setName("张三");
			user.setAge(23);
			user.setBirthday(new Date());
			
			request.setAttribute("u",user);
			%>
				${requestScope.u.name}<hr>//张三
				
			${u.age}<hr>//23
			<%--调用对象的getYear方法--%>
			${u.birthday.year}<hr>//121,21年
				
			${u.bitStr}<hr><%--自己定义的格式化日期方法--%>//2021-10-26 15:49:33
			
2. List集合∶${域名称.键名[索引]}
			例:
				<%
			    User user =new User();
			    user.setName("张三");
			    user.setAge(23);
			    user.setBirthday(new Date());
			
			    List list= new ArrayList();
			    list.add("aaa");
			    list.add("bbb");
			    list.add(user);
			    request.setAttribute("list",list);
				%>
			<h3>El获取list</h3>
				${list}<br>\\[aaa, bbb, cn.study.web.domain.User@3d42ebc7]
				${list[0]}<br>\\aaa
				${list[1]}<br>\\bbb
				${list[2].name}<br>\\张三
				${list[10]}<br><%--EL处理脚标的异常,显示为空--%>\\空的字符串
			<hr>
			
3. Map集合∶
	1. 第一种方法
		${域名称.键名.key名称}
	2. 第二种方法
 		${域名称.键名.["key"]}
	例:
		<%
	    User user =new User();
	    user.setName("张三");
	    user.setAge(23);
	    user.setBirthday(new Date());
	
	    Map map = new HashMap();
	    map.put("name","李四");
	    map.put("gender","男");
	    map.put("user",user);
	    request.setAttribute("map",map);
		%>
		
		<h3>El获取map</h3>
		${map.gender}<br><%--写法一--%>\\${map["gender"]}<br><%--写法二--%>\\${map.user.name}<br>\\张三
		<hr>

EL隐式对象

1. el表达式中有11个隐式对象,pageContext:获取取其他8个内置对象
		1. 获取request
			${pageContext.request}
		2. 动态获取虚拟目录
			${pageContext.request.contextPath}

总结:自己的学习心得,供以后复习使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky-stars

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值