EL表达式 取值、判断

EL表达式

是为了简化咱们的jsp代码,具体一点就是为了简化在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 }
  1. 如果域中所存的是数组

     <%
     	String [] a = {"aa","bb","cc","dd"};
     	pageContext.setAttribute("array", a);
     %>
     
     使用EL表达式取出作用域中数组的值<br>
     
     ${array[0] } , ${array[1] },${array[2] },${array[3] }
    
  2. 如果域中锁存的是集合

     <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);
     %>
     
     使用EL表达式取出作用域中集合的值<br>
    
     ${li[0] } , ${li[1] },${li[2] },${li[3] }
    
  3. 取出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的值

    ${map.name } , ${map.age } , ${map.address } , ${map[“address.aa”] }

取值细节:

  1. 从域中取值。 得先存值。

    <%
    	//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
使用EL表达式获取请求参数
${param.address}

// 相当于 <%=  request.getParameter("address")%>
  • cookie
    全局初始化参数
  • initParam
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值