EL表达式

本文深入讲解了EL(Expression Language)表达式的使用方法,包括在JSP中简化Java代码的技巧,详细介绍了如何从不同作用域(如pageScope、requestScope等)获取变量,以及处理数组、集合和Map数据的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全称是: Expression Language , 作用是为了简化咱们的 jsp 中的 java 代码

* 写法格式      ${表达式 }

>如果从作用域中取值,会先从小的作用域开始取,如果没有,就往下一个作用域取。一直把四个作用域取完都没有,就没有显示

如何使用:

1. 取出4个作用域中存放的值。

<%
	pageContext.setAttribute("name", "page");
	request.setAttribute("name", "request");
	session.setAttribute("name", "session");
	application.setAttribute("name", "application");
%>
		
按普通手段取值<br>
		
<%= pageContext.getAttribute("name")%>
<%= request.getAttribute("name")%>
<%= session.getAttribute("name")%>
<%= application.getAttribute("name")%>
		
<br>使用EL表达式取出作用域中的值<br>
		
${ pageScope.name }
${ requestScope.name }
${ sessionScope.name }
${ applicationScope.name }
2. 如果域中所存的是数组
<%
	String [] a = {"aa","bb","cc","dd"};
	pageContext.setAttribute("array", a);
%>
   		
使用EL表达式取出作用域中数组的值<br>
   		
${array[0] } , ${array[1] },${array[2] },${array[3] }
3. 如果域中锁存的是集合

使用EL表达式取出作用域中集合的值<br>

${li[0] } , ${li[1] },${li[2] },${li[3] }

<br>-------------Map数据----------------<br>
<%
	Map map = new HashMap();
	map.put("name", "zhangsna");
	map.put("age",18);
	map.put("address","北京..");
			
	map.put("address.aa","深圳..");


	pageContext.setAttribute("map", map);
%>
4. 取出Map集合的值

<%
	Map map = new HashMap();
	map.put("name", "zhangsna");
   	map.put("age",18);
   	map.put("address","北京..");
   		
   	map.put("address.aa","深圳..");


  	pageContext.setAttribute("map", map);
%>
使用EL表达式取出作用域中Map的值<br>
   	
${map.name } , ${map.age } , ${map.address }  , ${map["address.aa"] }

取值细节:

从域中取值。  得先存值。
<%

//pageContext.setAttribute("name", "zhangsan");
session.setAttribute("name", "lisi...");
%>

<br>直接指定说了,到这个作用域里面去找这个name<br>
${ pageScope.name } 

<br>//先从page里面找,没有去request找,去session,去application <br>
${ name }

<br>指定从session中取值<br>
${ sessionScope.name }  

2. 取值方式

如果这份值是有下标的,那么直接使用[]
<%
    String [] array = {"aa","bb","cc"}
    session.setAttribute("array",array);
%>

${ array[1] } --> 这里array说的是attribute的name 



如果没有下标, 直接使用 .的方式去取
<%
    User user = new User("zhangsan",18);
    session.setAttribute("u", user);
%>
    
${ u.name }  , ${ u.age } 

> 一般使用EL表达式,用的比较多的,都是从一个对象中取出它的属性值,比如取出某一个学生的姓名。

EL表达式 的11个内置对象

${ 对象名.成员 }

- pageContext 

作用域相关对象
- pageScope
- requestScope
- sessionScope
- applicationScope

头信息相关对象
- header
- headerValues

参数信息相关对象
- param
- paramValues


- cookie
  全局初始化参数
- initParam
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值