EL在java里的意义:
EL的语法很简单,他最大的特点就是使用上很方便
例:
${sessionScope.user.sex}
所有EL都是以 ${ 为起始、以} 为结尾的。
上述EL范例的意思是:从Session取得用户的性别。如果使用之前JSP代码的写法如下:
<%
User user = (User)session.getAttribute("user");
String sex = user.getSex( );
%>
两者相比较之下,可以发现EL的语法比传统JSP代码更为方便、简洁。
EL提供 . 和 [ ] 两种运算符来存取数据,[ ]可以访问集合或者是数组的元素、Bean的属性。下列两者所代表的意思是一样的,
但是需要保证要取得对象的那个的属性有相应的setXxx()和getXxx()方法才行。
例:
${sessionScope.user.sex}
等于
${sessionScope.user["sex"]}
. 和 [ ] 也可以同时混合使用,如下:
${sessionScope.shoppingCart[0].price}
返回结果为shoppingCart中第一项物品的价格。
在EL中,字符串既可以使用"abc",可以使用'abc'。
EL运算符
EL的算术运算符和Java中的运算符的大致相同,优先级也相同。
注意:'+' 运算符不会连接字符串了,他只用于加法运算。
EL关系运算符有以下六个运算符
关系运算符 说 明 范 例 结果
= = 或 eq | 等于 |${ 5 = = 5 } 或 ${ 5 eq 5 } | true
!= 或 ne | 不等于 |${ 5 != 5 } 或 ${ 5 ne 5 } | false
< 或 lt | 小于 |${ 3 < 5 }或 ${ 3 lt 5 } | true
> 或 gt | 大于 |${ 3 > 5 }或 ${ 3 gt 5 } | false
<= 或 le | 小于等于 |${ 3 <= 5 }或 ${ 3 le 5 } | true
>= 或 ge | 大于等于 |${ 3 >= 5 }或 ${ 3 ge 5 } | false
empty运算符
Empty运算符主要用来判断值是否为null或空的,例如:
${ empty param.name }
接下来说明Empty运算符的规则:
A
如果A为null时,返回true
如果A不存在时,返回true
如果A为空字符串时,返回true
如果A为空数组时,返回true
如果A为空的Map时,返回true
如果A为空的Collection时,返回true
否则,返回false
注意:
在使用EL关系运算符时,不能够写成:
${param.password1} = = ${param.password2}
或者
${ ${param.password1 } = = ${ param.password2 } }
而应写成
${ param.password1 = = param.password2 }
使用EL从表单中取得数据
与输入有关的隐含对象有两个:param和paramValues,它们是EL中比较特别的隐含对象。一般而言,我们在取得用户的请求参数时,
可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中则可以使用param和paramValues两者来取得数据。
${param.name}
${paramValues.name}可以取得所有同名参数的值
${paramValues.hobbies[0]}可以通过指定下标来访问特定的参数的值
这里param的功能和request.getParameter(String name)相同,而paramValues和request.getParameterValues(String name)相同。
如果用户填了一个form,form名称有为username的文本框,则我们就可以使用${param.username}来取得用户填入文本框的值。
EL函数
EL中使用函数要写一个要使用到方法的类,然后在配置xxx.tld文件,然后在JSP中使用时和JSP的自定义标签相似。
xxx.tld中的配置
<function>
<name>reverse</name><!--函数名-->
<function-class>jsp2.examples.el.Functions</function-class><!--函数所在的类-->
<function-signature>java.lang.String reverse( java.lang.String )</function-signature>
<!--函数原型,也就是函数的返回值类型,函数名,参数表,注意一定要写类型的全名-->
</function>

EL在java里的意义相关推荐

  1. Java 里的泛型简介.

    我们在JDK中有时回见到1个类or接口后面跟这1个尖括号. 例如: java.util.HashMap<K,V> 我们一开始大概知道K,V 大概就是Key和Value的意思, 键值对嘛, ...

  2. Java里的容器 Collection 简介

    容器也是Java面试经常问到的问题.  也是Java编程的其中1个难点. 在一篇文章中很难全部讲清楚, 我打算分几篇逐步介绍. 一.  什么是容器 1.1 容器的定义 Java里的容器的定义很简单: ...

  3. Java里的接口的interface 简单介绍.

    这是写给我自己和我这种初学者看的. Java作为1个强面向对象语言,  基本上所有东西(成员和方法)都是写在class(类)里面的. 但是也存在一种与class平行的东西, 它就是interface ...

  4. Java 里的 abstract 和 final 关键字

    一. abstract abstract 的中文意思就是抽象的, 所谓抽象就是这个东西在现实里不存在, 也就是不能直接实例化的意思. abstract 可以修饰类, 类的方法 1.1 abstract ...

  5. 在java中写出html代码,在java里写html代码

    在java里写html代码 [2021-02-09 07:31:38]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  6. Java 里的异常(Exception)详解

    作为一位初学者, 本屌也没有能力对异常谈得很深入.   只不过java里关于Exception的东西实在是很多. 所以这篇文章很长就是了.. 一, 什么是java里的异常 由于java是c\c++ 发 ...

  7. java里类得继承详细讲解_java中类的继承详解。

    前言 继承是面向对象的三大特征之一. 也是实现软件复用的重要手段. Java继承具有单继承的特点, 每个子类只有一个直接父类. 继承的特点 Java的继承通过extends关键字实现. 实现继承的类被 ...

  8. Java 里的 for (;;) 与 while (true),哪个更快?

    点击关注公众号,Java干货及时送达 在JDK8u的jdk项目下做个很粗略的搜索: mymbp:/Users/me/workspace/jdk8u/jdk/src $ egrep -nr " ...

  9. 快手二面:Java 里的 for (;;) 与 while (true),哪个更快?

    转自:知乎 www.zhihu.com/question/52311366/answer/1300903 在 JDK8u 的 jdk 项目下做个很粗略的搜索: mymbp:/Users/me/work ...

最新文章

  1. 36 张图详解应用层协议:网络世界的最强王者
  2. Building Java Projects with Gradle
  3. JMX操作ActiveMQ(2)
  4. xshell如何登陆数据库_Xshell连接远程服务器和操作数据库
  5. 在linux系统中安装VSCode(Visual Studio Code)
  6. git设置忽略文件和目录
  7. 刷机提示图像和设备不匹配_安卓5.0升级失败如何解决 安卓5.0刷机失败解决方法介绍【教程】...
  8. 限定域文本语料的短语挖掘(Phrase Mining)
  9. 832计算机组成原理和数据结构,考试科目832计算机组成原理和数据结构.doc
  10. 4-3 面向复用的设计模式
  11. 在线查服务器地址,工具|查询域名所在服务器的其他网站和IP
  12. 常用的软件测试方法及特点分析
  13. 数字温湿度传感器DHT11模块
  14. 域名带www和不带的区别
  15. java swing 常见错误和使用
  16. 挨踢项目求生法则(2)——战略篇
  17. Chapter 14
  18. 2.4gwifi最高下载速度_宽带200m,光猫和无线一体的猫,5g和2.4g无线下速度多少是正常?...
  19. html转换txt文本格式方法,hthtml转txtml转换txt文本格式方法
  20. CSS+HTML学习笔记005

热门文章

  1. HTML5 学习手笔二:canvas API 绘制树形图案A
  2. 子类继承父类后调用virtual函数问题(base.函数名)
  3. Android USB 开发详解
  4. 最全CSS各种布局详解
  5. Android与Js进行交互
  6. 文件服务器访问权限分配,设置文件服务器的访问权限
  7. 手机写python脚本_手机需要,哪位大神帮编个Python脚本,谢谢
  8. linux怎么删除sd卡内容,SD卡写保护怎么去掉?不是开关那么简单
  9. 有效沟通bic法则_学好英语的18条黄金法则,强烈推荐给孩子看
  10. python中运算的英文_[lemon]Python中的运算符,LemonPython