javaWeb之表达式语言EL

启动EL语言

在JSP2.0中,增加了EL语言,可以通过EL语言,可以通过EL语言,实现获取数据。EL语言给大家带来了方便,但有时,也会遇到EL表达式不能显示的情况。
我目前使用的是2.3版本,则xml指令和文档类型定义如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

启用表达式语言
在JSP页面添加
<%@ page isELIgnored=”false”%>

EL语言优点

EL有以下几个特点:

  • EL可以与JSTL结合使用,也可以与JavaScript语句结合使用;
    • EL中会自动进行类型转换。如果想通过EL输入两个字符串型数值的和,可以直接通过”+”号进行连接,如${num1+num2};
  • EL不仅可以访问一般变量,还可以访问JavaBean中的属性以及嵌套属性和集合对象;
  • 在EL中可以获得上下文对象(PageContext对象,它是页面中所有其他内置对象的最大范围的集成对象,通过它可以访问其他内置对象);
  • 在使用EL进行除法运算时,如果除数为0,则返回无穷大Infinity,而不是错误;、
  • 在EL中可以访问JSP的作用域(request、session、application以及page);
  • 扩展函数可以与Java类的静态方法进行映射。

访问对象属性

EL可以访问application、session、request、pageContext中的属性与方法,如

  <%   
   session.setAttribute("info","Session范围Info");
   application.setAttribute("info","application范围Info");
   request.setAttribute("info","request范围Info");
   pageContext.setAttribute("info","Page范围Info");
  %>
  <h1>表达式语言:${info}</h1>
  <h1>sessionId=${pageContext.session.id}</h1>

访问顺序:${info}首先访问pageContext里面的属性,如果没有,则访问request里面的属性,其实是Session,application里面的属性。
当然,也可以通过对象名+Scope来限定范围。如

<h1>获取session里面的info:${sessionScope.info}</h1>

为什么能够通过${pageContext.session.id}相当于调用了 pageContext.getSession().getId(),返回sessionid呢?这得依赖于java的反射机制。

接受参数

<%=request.getParameter("url") %>
  <h1>表达式语言:${param.url}</h1>

当不传递参数时候
这里写图片描述
传递参数
这里写图片描述
总结一下:接受单个参数是通过 param.paramValues {paramValues.参数名[1]},代表接受参数名中第二个参数。

表达式运算符

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值