EL

EL 表达式语言,来自民间 ,Servlet2.4 之后 EL 被纳入官方规范
功能:
1、EL 获得 JSP四个范围中保存数据 (访问JavaBean的属性)
2、EL 表达式支持运算
3、EL 内置 11个对象 --- web开发常用对象
4、EL 调用 java的方法

EL是从javaee1.4版本才被纳入规范,javaee1.3 及以前版本,默认对EL不进行解析
* 如果想 javaee1.3 以及之前版本解析 EL ------ 设置 page 属性 isELIgnored = false

1、使用EL 获得 jsp四个范围数据
使用EL指定查找四个范围数据 ${pageScope.属性名称} ${requestScope.属性名称} ${sessionScope.属性名称} ${applicationScope.属性名}
如果不执定查找数据范围 ${属性名称} ---- 调用pageContext.findAttribute 在四个范围依次查找
如果查找属性不存在,返回是一个 "" 空串,而不是null

获得数组、List、Map时 有些情况使用 [] 获得属性值
. 和 [] 有什么区别 ?
答案:. 和 [] 都可以用来取得EL 属性值,.可以实现功能 [] 都可以!
例如: ${pageScope.user.name} 也可以写为 ${pageScope.user["name"]}  (获得对象后,访问对象属性时才可以用 [] 取代.效果 )
[]  可以使用特殊标识信息,但是. 不可以
例如:
pageContext.setAttribute("0","itcast");
pageContext.setAttribute("aa.bb","春生泰克");
只能通过[] 进行访问 ----- 注意:在使用[] 进行属性取值时,加"" , 不加"" 认为是一个变量

在使用EL进行取值时,如果含有特使字符属性,尽量使用[] , 否则都使用. 就可以了

2、在EL 中执行 算术、比较、逻辑运算
在EL 执行运算时,运算语句必须写入 ${}中
* 在EL 获得属性值 执行算术运算,自动类型转换 ---- 执行算术运算时,进行运算参数,必须都是数字
${"a"+"b"} ---- 发生数字格式化错误

empty运算符
1) 判断一个属性是否存在 , 通常empty运算符都是结合c:if 一起使用
2) 使用empty 判断List 或者 Map是否为空 (size==0)
 
二元表达式:${user!=null?user.name:""}  ----- 三元运算符

3、EL 11个内置对象
pageScope requestScope sessionScope applicationScope 四个数据范围,用来取值

pageContext 当前jsp上下文 ----- ${pageContext.request.contextPath }

${param.name} 等价于 request.getParameter("name")
${paramValues.hobby} 等价于 request.getParameterValues("hobby")
${header.referer} 等价于 request.getHeader("referer")
${headerValues["Accept-Encoding"]} 等价于 request.getHeaders("Accept-Encoding")

${initParam.name} 等价于 getServletContext().getInitParamter("name")

必须掌握cookie隐含对象写法
Cookie[] cookies = request.getCookies();
    if(cookies==null){
        out.println("cookie不存在!");
    }else{
        for(Cookie cookie : cookies){
            if(cookie.getName().equals("address")){
                out.println(cookie.getValue());
            }
        }
    }

使用EL : ${cookie.address.value }

4、EL获取数据值,经常需要对取得数据值进行处理 ----- EL函数
步骤:
第一步:编写java类,提供static方法
第二步:编写tld文件 ,在tld文件中对函数进行定义描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值