EL表达式语言

表达式语言语法:${}

表达式语言可以访问对象中的属性、提交的参数,进行数学运算、进行逻辑判断等。如果输出的内容为null,则会使用""空字符串表示


表达式语言的内置对象

pageContext:javax.servlet.jsp.PageContext的一个实例,通过这个对象可以取得request,response,session等对象

pageScope,requestScope,sessionScope,applicationScope:表示从对应的pageContext,request,session,application范围内获取setAttribute()方法存储的属性。

param:用于获取请求传送过来的参数。作用相当于request的getParameter()。

paramValues:用于获取传送过来的一组参数,作用相当于request的getParameterValues()

initParam:用户获取配置的初始化参数,即配置在web.xml的<context-param>标签中的内容


EL表达式在访问对象的成员变量时用到了Java反射机制。假设request对象调用了setAttribute(“user”,user),user是一个类的实例,且该实例有name属性。那么${user.name}相当于request.getAttribute("user").getName()。通过Java反射机制,根据要获取的属性生成对应的get方法,然后使用反射机制调用get方法。


表达式语言可以访问四种范围的属性(pageContext,request,session,application),如果有多个范围设置了同样的属性,那怎么访问呢。实现本身采用了范围从小到大(pageContext—>request—>session——>application)的顺序获取相应的属性。如pageContext和request都有属性user,那么${user},将取出pageContext范围的属性,而不是request范围的属性。此时如要知道自己获取哪个范围的属性,最好加上范围的明确说明,如${pageContext.user },那么就可以明确是获取pageContext范围的user属性。


如果request对象有个list属性,保存的是一个List对象,那么${requestScope.list[i] }就可以访问集合中的第i个元素

如果reqeust对象有个map属性,保存的是一个Map对象,那么${requestScope.map[key]}就可以通过map中的key访问对应的value


运算符

算术运算符:+ 、 - 、 * 、 / 或 div 、% mod

关系运算符:==  eq 、 != 或 ne、< or lt、> 或 gt、<= 或 le、 >= 或 ge

逻辑运算符:&& 或 and、|| 或 or、!或 not

其他运算符:empty 判断是否为null,如:${empty info},判断是否有info属性

                     ?:三目运算符。${10 > 20 ? "大于" : "小于"}。大于则输出“大于”文本

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值