EL表达式用法

获取数据(1)

使用EL表达式获取数据语法:“${标识符}”
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。 

注意,EL表达式的功能:按小到大的顺序依次从4个容器中读取数据(如果读到则后面的容器跳过),※数据必须要放在容器中
示例:

<%
    	pageContext.setAttribute("pageName", "page_Jack");
    	request.setAttribute("requestName", "request_Jack");
    	session.setAttribute("sessionName", "session_Jack");
    	application.setAttribute("applicationName", "application_Jack");
%>
${pageName},${requestName},${sessionName},${application}<br/>

获取数据(2)

EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如:
${user.address.city}
${user.list[0]}:访问有序集合某个位置的元素
${map.key}  : 获得map集合中指定key的值
结合JSTL的foreach标签,使用EL表达式也可以很轻松迭代各种类型的数组或集合,示例:
迭代数组
迭代collection类型集合
迭代map类型集合

<!-- 用EL表达式读取Map中的信息 -->
     <%
     	Map<String, Object> map=new HashMap<String, Object>();
     	map.put("name", "Rose");
   	    map.put("sex", "Female");
   	    map.put("age", 25);
   	    map.put("tel", "13812345678");
   	    map.put("friend", user);
   	    //一定要把数据放到容器中
   	    request.setAttribute("map", map);
      %>
     ${map.name},${map.sex},${map.age}<br/>
         朋友: ${map.friend.name}
           
     <hr/><br/><br/>
     <!-- 用EL表达式读取List中的信息 -->
     <%
     	List list=new ArrayList();
      	list.add("Mike");
      	list.add(user);
      	list.add(map);
      	session.setAttribute("list", list);
      %>
     ${list[0]},${list[1].name}<br/>
     ${list[2].friend.name}

执行运算

语法:${运算表达式},EL表达式支持如下运算符:

还有一个empty运算符: 如果表达式的值为null  或者  不存在该变量  或者  是一个List或Map但其中不包含元素  ---这些返回的都是true


示例:

<!-- 演示EL表达式中的运算 -->
   	 1 可以使用算术运算符: + - *  /  % 等 <br/>
   	 ${user.age+10}<br/>
     
     2 可以使用比较运算符: ==  !=  <=  >  >= 等 <br/>
     ${user.name=="张三"}<br/>
     
     3 逻辑运算符: &&   ||   !(非) 等 <br/>
     ${user.name=="Tom" && user.age<20}<br/>
     
     4 条件运算符: 即“?”号表达式 <br/>
     ${user.name!="张三" ? 100:50}<br/>
     
     5 empty运算符: 如果表达式的值为null  或者  不存在该变量  或者  是一个List或Map但其中不包含元素  ---这些返回的都是true <br/>
     ${empty dd}---true<br/>
     ${empty map}---false<br/>
     ${!empty user}---true<br/>
     ${empty list}---false<br/>

获得web开发常用对象

EL表达式语言中定义了11个隐含对象,使用这些隐含对象可以很方便地获取web开发中的一些常见对象,并读取这些对象的数据。
语法:${隐式对象名称}  :获得对象的引用

隐含对象名称    描       述                                                                                                         
pageContext对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)
pageScope代表page域中用于保存属性的Map对象
requestScope   代表request域中用于保存属性的Map对象
sessionScope代表session域中用于保存属性的Map对象
applicationScope     代表application域中用于保存属性的Map对象
param表示一个保存了所有请求参数的Map对象
paramValues表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
header表示一个保存了所有http请求头字段的Map对象
headerValues同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
cookie表示一个保存了所有cookie的Map对象
initParam表示一个保存了所有web应用初始化参数的map对象
示例:

<!-- 从指定的容器中读取数据 -->
     ${pageScope.user}<br/>
     ${requestScope.map}<br/>
     ${sessionScope.list[0]}<br/>
     <br/>
     ${header}<br/>
     ${header.host}<br/>
     ${header.cookie}<br/>
     ${cookie.JSESSIONID.value}<br/>
     <br/>
         演示访问地址:http://localhost:8080/elWeb_mine/?name=Jack&age=21<br/>
     ${param}<br/>
     ${param.name}<br/>
     ${paramValues}<br/>
     ${paramValues.name[0]}<br/>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值