简介:

EL 表达式语言 ,简化了 JSP 语言的写法。

eg:

if(session.getAttribute(nunamen)!==null)

{

Out.println(session.getAtribute("uname").toString());

}%>

转换为EL:

$ {uname}

好处

可以与 JSTL 以及 JavaScript 结合使用。

可自动执行数值转换。例如,如果想输出两个字符串数值型 number1 和 number2 的和,可以通过“+”连接,即 ${numberl+number2}。

可以访问 JavaBean 中的属性、嵌套属性和集合属性。

可实现算术、逻辑、关系、条件等多种运算。

可以获得命名和空间(pageContext 对象是页面中所有其他内置对象的最大范围的继承对象,通过它可以访问内置对象)。

执行除法时如果除数是0,则返回无穷大(Infinity),不返回错误。

可访问4种 JSP 的作用域(request、session、application、page)。

扩展函数可以与 Java 类的静态方法执行映射。

禁用EL的方法

最具体的方法直接在EL表达式前面加入\

\${uname}

第二种,使用page指令

第三种,全局设置在web.xml中

*jsp

false

格式

${EL 表达式}

它以“${”开头,以“}”结束,中间为合法的表达式,里面可以是字符串或者El运算符组成的表达式

EL点(.)和[]运算符

不能互换的场景:

当要存取的数择名称中包含不是字母或数字的特殊字符时,只能使用 []

当取得的数据为动态值时,只能使用 []

${sessionScope.user.["user-sex"]}

${sessionScope.user[param]}

其他时候基本都可以互换

${sessionScope.user.sex}

等价于

${sesionScope.user["sex"]}

需要保证要取得对象的那个属性有相应的 setXxx() 和 getXxx() 方法才行。

算数运算符

关系运算符:

例子

关系运算

\${9==9}-----${9==9}

\${9>9}-----${9>9}

\${9<=9}-----${9<=9}

\${9 eq 9}-----${9 eq 9}

\${9 gt 9}-----${9 gt 9}

re

逻辑运算符:

例子

关系运算

\${(9==9)&&(9<9)}-----${(9==9)&&(9<9)}

\${(9==9)&&(9>9)}-----${(9==9)&&(9>9)}

\${(9==9)||(9==9)}-----${(9==9)||(9==9)}

\${(9==9)||(9>9)}-----${(9==9)||(9>9)}

\${(9 gt 9)and(9==9)}-----${(9 gt 9)and(9==9)}

re

条件运算符

${条件表达式?表达式1:表达式2}

关系运算

\${(9==9)?(90==9):(99==99)}-----${(9==9)?(90==9):(99==99)}

\${(9==9)?2:1}-----${(9==9)?1:3}

\${(9==9)?"9和9相等":"9和9不等"}-----${(9==9)?"9和9相等":"9和9不等"}

re

EL表达式的保留字

保留字是系统预留的名称,在为变量命名时,应该避开这些预留的名称,以免程序编译时发生错误。

包括:

null -empty

empty:

通过 empty 运算符,可以实现在 EL 表达式中判断对象是否为空。该运算符用于确定一个对象或者变量是

否为 null 或空。若为空或者 null,返回空字符串、空数组,否则返回 false。

例子:

当 cart 变量为空时,输出购物车为空,否则输出购物车

${empty cart?"购物车为空":cart}

null和empty的区别

Title

${empty param.name}

${param.name eqnull}

url:http://localhost:8089/mavenonweb_war/EL/emptynull.jsp

re:

url;http://localhost:8089/mavenonweb_war/EL/emptynull.jsp?name=

url:http://localhost:8089/mavenonweb_war/EL/emptynull.jsp?name=quan

由上面可以知道,再EL表达式当中,当name是有赋值,当时赋值为空的时候

empty是认为它是空的,返回true

null则认为空值不是null ,所有返回false

变量访问:

常量

EL 表达式中的常量也称为字面常量,它是不可改变的数据。包括下面的字面常量

1Null 常量:Null 常量用于表示常量引用的对象为空,它只有一个 null值。

2整型常量:整型常量与 Java 中的十进制整型常量相似,它的取值范围与 Java 语言中long 范围的整型常量相同,即在 -263~263-1之间。

3浮点数常量:浮点数常量用整数部分加小数部分来表示,也可以用指数的形式来表示。

例如,1.3e4 和 1.3 都是合法的浮点数常量,它的取值范围是 Java 语言中定义的范围,即其绝对值介于 4.9E-324~1.8E-308之间。

4布尔常量:布尔常量用于区分一个事物的正反两方面,它的值只有两个,分别是true 和 false。

5字符串常量:字符串常量是使用单引号或者双引号括起来的一连串字符。如果字符串常量本身又含有单引号或双引号,

则需要在前面加上“\”进行转义,即用“V”表示单引号,用表示双引号。如果字符本身包含“\”,则需要用“\\”表示字面意义上的反斜杠。

6符号常量:在 EL 表达式语言中,可以使用符号常量,它类似于 Java 中final 说明的常量。使用符号常量的目的是为了减少代码的维护量。

String size="12";

String textclr="Blue";

String foregr="Red";

pageContext.setAttribute("color",color);

pageContext.setAttribute("size",size);

pageContext.setAttribute("textclr",textclr);

pageContext.setAttribute("foregr",foregr);%>

EL 中的符号常量的用法

背景色和文本颜色已经修改

变量

EL 存取变量数据的方法很简单,如 ${username}。它的意思是取出某一范围中的名为 username 的变量值。因为没有指定哪一个范围的 usemame,所以,它的默认值是在 page 范围内查找,如果找不到,则按照 request、session、application 范围依次查找,如果此期间找到 usemame,则直接回传,不再继续找下去,如果没有找到,则返回 null

表达式属性范围

request.setAttribute("name","quan-request-Context");

session.setAttribute("name","quan-session-Context");

application.setAttribute("name","quan-application-Context");%>${pageScope.name}

re

自动转格式:

EL表达式

session.setAttribute("age",22);

// 以前需要这样子做转换才能相加

Integer age = (Integer) session.getAttribute("age");

age = age+1;

out.print(age);

%>

${sessionScope.quan}

${sessionScope.age + 1}

基本的规则

(1) 将 X 转为 String 类型。

当 X 为 String 时:回传 X。

当 X 为null时:回传“ ”。

当 X.toString() 产生异常时,返回错误。

其他情况则传回 A.toString()。

(2) 将 X 转为 Number 类型的 N。

当 X 为null 或“ ”时,回传 0。

当 X 为 Character 时,将 X 转为new Short((short)x.charValue(})。

当 X 为 Boolean 时,返回错误。

当 X 为 Number 类型,与 N 一样时,则回传 X。

当 X 为 String 时,回传 N.valueOf(X)。

(3) 将 X 转为 Boolean 类型。

当 X 为null 或“ ”时,回传 false。

当 X 为 Boolean 时,回传 X。

当 X 为 String 且 Boolean.valueOf(X) 没有产生异常时,回传 Boolean.valueOf(X)。

(4) 将 X 转为 Character 类型。

当 X 为null 或“ ”时,回传 (char)0。

当 X 为 Character 时,回传 X。

当 X 为 Boolean 时,返回错误。

当 X 为 Number 时,转换为 Short 后,回传 Character。

当 X 为 String 时,回传 X.charAt(0)。

EL内置对象

4种属性范围

当我们有不同属性范围内有同一个属,访问的时候按照的顺序为:

page、request、session、application 的范围进行查

调用内部函数

pageContext调用内置函数

id:${pageContext.session.id}

el java常量_java - EL相关推荐

  1. 什么是java常量_java常量是什么?

    Java常量是什么? JAVA常量就是在程序中固定不变的值,是不能改变的数据.例如数字1.字符"a".浮点数3.2等.在Java中,常量包括整型常量.浮点数常量.布尔常量.字符常量 ...

  2. js 引用 java常量_java调用JS 与JS 调java

    这个 刚开始 我也不会,把我整的是个蛋疼的啊, 最后发现其实挺简单的,我现在给大家说的是我自己掌握的一种, 1. 先是要给项目配置一些权限 (1).访问网络权限 (2).访问SD卡权限 2.给webv ...

  3. java,js,jstl,EL的简单交互

    EL全名Expression Language.EL提供了在JSP脚本编制元素范围外使用运行时表达式的功能. 脚本编制元素是指页面中能够用于在JSP文件中嵌入java代码的元素. JSP标准标记库(j ...

  4. java el表达式 if else_jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法 一.条件运算符 ${user.gender==?'男':'女'} 二.if() code.. ...

  5. java 代码执行el,专属于java的漏洞——EL表达式注入

    前言"FSRC经验分享"系列文章,旨在分享焦点科技信息安全部工作过程中的经验总结,包括但不限于漏洞分析.运营技巧.sdl推行.等保合规.自研工具等等. 欢迎各位安全从业者持续关注~ ...

  6. java调用el_[Java教程][javaEE] EL表达式调用java方法

    [Java教程][javaEE] EL表达式调用java方法 0 2016-07-03 18:00:03 1.新建个类,类里面定义静态方法 package com.tsh.utils;import j ...

  7. 案例:对比使用Java代码与EL表达式获取信息

    一.创建MyServlet public class MyServlet extends HttpServlet {public void doGet(HttpServletRequest reque ...

  8. java el 表达式_Javaweb之EL表达式

    1.EL表达式简介 EL全名为Expression Language.EL的主要作用为: 获取数据:EL表达式主要用于替换jsp页面中的脚本表达式,以从各种类型的web域中检索java对象,获取数据. ...

  9. java 常量变量使用_java常量和变量入门教程

    java常量和变量入门教程 Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代).运算符重载(operato ...

最新文章

  1. 干掉 ZooKeeper?阿里为什么不用 ZK 做服务发现?
  2. 李彦宏称AI可让人们获得永生
  3. cadence原理图软件(orcad)层级原理图与位号
  4. Qt中的QFormLayout
  5. adadelta算法_对C++用户比较友好的机器学习算法库
  6. BZOJ5286 HNOI/AHOI2018转盘(分块/线段树)
  7. vegan稀释曲线 基因丰度_R语言 vegan包计算物种累计曲线
  8. matlab2c使用c++实现matlab函数系列教程-log10函数
  9. ALSA DAPM创建codec到codec的dai连接
  10. Ubuntu下多版本OpenCV共存和切换
  11. oracle sql 正则表达式
  12. 用LINUX就要安装文泉驿字体
  13. 企业认证CMMI都需要那些流程?
  14. 中国生产力促进中心”十四五”规划与发展规模分析报告2022~2028年
  15. 大咖分享|王建峰:数据指标管理体系建设实践分享
  16. Bitbake中文手册--1(概述)
  17. 解决:“证书错误,导航已阻止”
  18. iWebShop 电商项目实战003----页面初始化数据测试
  19. 参加珠海苹果售后维修体验
  20. 在资深的幻游科技棋牌开发公司,领悟到的棋牌开发分享

热门文章

  1. 9.有一磁盘文件employee,内存放职工的数据。每个职工的数据包括职工姓名、职工号、性别、年龄、住址、工资、健康状况、文化程度。今要求将职工名、工资的信息单独抽出来另建一个简明的职工工资文件。
  2. scrapy 中间件
  3. HttpOnly是怎么回事?
  4. python掷两个骰子的和_python对2个六边形骰子掷骰的仿真之和
  5. 2021年G3锅炉水处理新版试题及G3锅炉水处理复审模拟考试
  6. Python Notebook 爬虫实践案例分享2/Dappa
  7. PIN码PJ教程,reaver 使用方法和技巧
  8. MSO5204B/泰克Tektronix MSO5204B示波器
  9. 用sympy计算雅克比矩阵
  10. vue 手指滑动事件 长按事件、左右滑动、上下滑动