EL表达式语言

作用

EL和JSTL一起使用取代JSP页面中嵌入Java代码

功能

语法:${EL表达式}
EL获取数值
EL执行运算
EL获取Web开发常用的对象
EL表达式语句在执行的时候,会调用pageContext.foindAttribute()方法,分别从page、request、session、aaplication范围内查找对象,找到就返回相应对象,找不到就返回""(不是null,是空字符串)。EL获取的数据需要在如上四个作用域中。

EL获取数值

<% pageContext.setAttribute("name", "Marry") %> === ${pageScope.name} ---> 简写${name}
1、EL获取数组的数据:
<%
	String[] arrs = {"aa","bb","cc"};
	pageContext.setAttribute("arrs",arrs);
%>
	${arrs[0]}
	${arrs[1]}
	${arrs[2]}
运行结果: aa bb cc

2、EL获取List集合的数据:
<%
	List<String> list = new ArrayList<String>();
	list.add("11");
	list.add("22");
	list.add("33");
	pageContext.setAttribute("list",list);
%>
	${list[0]}
	${list[1]}
	${list[2]}
运行结果: 11 22 33

3、EL获取Map集合的数据:
<%
	Map<String,Integer> map = new ArrayList<String,Integer>();
	list.add("aa",111);
	list.add("bb",222);
	list.add("cc.dd",333);
	pageContext.setAttribute("map",map);
%>
	${map.aa}
	${map.bb}
	${map["cc.dd"]}
运行结果: 111 222 333
注意:如果map的key中包含了特殊字符,就不能用.  只能用[]
     .  是用来获取对象的属性的
     [] 是用来获取下标的

EL执行运算

1、执行算数运算
<%
	pageContext.setAttribute("n1",10);
	pageContext.setAttribute("n2",20);
%>
	${n1+n2}  ----30
2、执行关系运算
	${n1 < n2}  或者  ${n1 lt n2}  ----true
	${n1 > n2}  或者  ${n1 gt n2}  ----false
	${n1 == n2}  或者  ${n1 eq n2}  ----false
	${n1 < n2}  或者  ${n1 lt n2}  ----true
	${n1 >= n2}  或者  ${n1 ge n2}  ----false
	${n1 <= n2}  或者  ${n1 le n2}  ----true
3、执行逻辑运算
	pageContext.setAttribute("n3",30);
	pageContext.setAttribute("n4",40);
	${(n1 < n2) && (n3 < n4)}  或者  ${(n1 < n2) and (n3 < n4)}  ----true
	${(n1 < n2) || (n3 < n4)}  或者  ${(n1 < n2) or (n3 < n4)}  ----true
	${!(n1 < n2)}  或者  ${ not(n1 < n2) }  ----false
4、执行三元运算
    ${n1 < n2 ? "n1小于n2" : "n1不小于n2"} ----n1小于n2
5、empty运算符
    判断是否为空
    ${ empty user}

EL获取web开发常用对象

EL表达式定义了11个开发中的常用对象:
(1)pageContext :相当于JSP内置对象中的pageContext
(2)pageScope :获取指定域下的名称的数据
(3)requestScope :获取指定域下的名称的数据
(4)sessionScope :获取指定域下的名称的数据
(5)applicatinScope :获取指定域下的名称的数据
(6)param :在页面中接收请求参数(接收一个名称对应一个参数,相当于request.getParameter())
(7)paramValues :在页面中接收请求参数(接收一个名称对应多个参数,相当于request.getParameterValues())
(8)header :在页面上获取请求头(获取一个key对应一个value头)
(9)headerValues :在页面上获取请求头(获取一个key对应多个value头)
(10)cookie :访问cookie的名称和值 c o o k i e . k e y . n a m e {cookie.key.name} cookie.key.name{cookie.key.value}
(11)initParam :获得全局初始化参数的值

${ param.name} 相当于 request.getParameter(“name”);
${ paramValues.hobby[0]} 相当于 request.getParameterValues(“hobby”);

常用的请求头 User-Agent
${ header[User-Agent]} 获得浏览器的类型

使用pageContext可以想JSP中那四个作用域中存储数据,另外通过它可以获得另外8个内置对象
${ pageContext.request.contextPath} —获得工程的路径(重要!)
${ pageContext.request.remoteAddr} —获得ip地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天然首长

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

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

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

打赏作者

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

抵扣说明:

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

余额充值