1. 概念:Expression Language 表达式语言
  2. 作用:替换和简化jsp页面中java代码的编写
  3. 语法:$
  4. 注意:
  • jsp默认支持el表达式,如果要忽略el表达式

    1. 设置jsp中page指令中:isELIgnored="true" 忽略当前jsp页面中所有的el表达式
    2. ${表达式}:忽略当前这个el表达式
  1. 使用:
  2. 运算

    * 运算符

    1. 算数运算符:+ - * /(div) %(mod)
    2. 比较运算符:> < >= <= == !=
    3. 逻辑运算符:&&(and)||(or) !(not)
    4. 空运算符:empty
      • 功能:用于判断字符串,集合,数组对象是否为null或者长度是否为0
      • ${empty list}:判断字符串,集合,数组对象是否为null或者长度是否为0
      • ${not empty list}:表示判断字符串,集合,数组对象是否不为null并且长度>0
  3. 获取值

    1. el表达式只能从域对象中获取值

    2. 语法

    1. ${域名称. 键名}:从指定的域中获取指定键的值
    • 域名称:

      1. pageScope -->pageContext
      2. requestScope -->request
      3. sessionScope -->session
      4. applicationScope-->application(ServletContext)
    • 举例:
    • 在request域中存储了name=张三
    • 获取:$
    1. ${键名}:表示一次从最小的域中查找是否有该键对应的值,直到找到为止 $
    2. 获取对象,List集合,Map集合
    3. 对象:${域名称.键名.属性名}

      * 本质上会去调用对象的getter方法
    4. List集合:$
    5. Map集合:\({域名称.键名.key名称}或者\)
  4. 隐式对象:

    * el表达式中有11个隐式对象

    * pageContext:

    1. 获取其他8个内置对象

      在jsp页面动态获取虚拟目录:$

运算符

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
${3>4}
\${3>4} <hr> <h3>算数运算符</h3>
${3+4}<br>
${3-4}<br>
${3 % 4}<br>
${3 mod 4}<br>
${3 div 4}<br>
${3 / 4}<br>
<h3>比较运算符</h3>
${3==4}<br> <h3>逻辑运算符</h3>
${3>4 && 3<4}<br>
${3>4 and 3<4}<br> <h3>empty运算符</h3>
<%
String str="abc";
request.setAttribute("str",str); List list=new ArrayList();
request.setAttribute("list",list);
%>
${empty str}<br>
${not empty str}<br>
${not empty list}<br> </body>
</html>

域中存取数据

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取域中的数据</title>
</head>
<body>
<%
session.setAttribute("name","李四");
//在域中存储数据
request.setAttribute("name","张三");
session.setAttribute("msg","23");
%> <h3>el获取值</h3>
${requestScope.name};
${sessionScope.msg};
${name};
${sessionScope.name};
</body>
</html>

存取对象与集合数据

<%@ page import="cn.itcast.domain.User" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el获取对象数据</title>
</head>
<body>
<%
User user=new User();
user.setAge(23);
user.setName("张三");
user.setBirthday(new Date()); request.setAttribute("u",user); List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add(user);
request.setAttribute("list",list); Map map=new HashMap();
map.put("sname","李四");
map.put("gender","男");
map.put("user",user); request.setAttribute("map",map); %>
<h3>el获取对象中的值</h3>
${requestScope.u};
<%--
* 通过对象的属性来获取
* setter和getter方法,去掉set和get,再将剩余部分,首字母变小写
* setName -->Name -->name
--%>
<br>
${requestScope.u.name}
<br>
${requestScope.u.age}
<br>
${requestScope.u.birthday}
<br>
${u.birthday.year}
<br>
${u.birthday.month}
<br>
<h3>el获取List中的值</h3>
<br>
${list}<br>
${list[0]}<br>
${list[1]}<br>
${list[10]}<br>
${list[2].name}<br>
<h3>el获取Map中的值</h3>
<br>
${map.gender}<br>
${map["gender"]}<br>
${map.user.name}<br>
</html>

动态获取虚拟目录

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>el的隐式对象</title>
</head>
<body>
${pageContext.request}<br>
<h3>在jsp页面动态获取虚拟目录</h3>
${pageContext.request.contextPath}<br>
</body>
</html>

Java-EL表达式替换和简化jsp页面中java代码的编写的更多相关文章

  1. jsp页面中的代码执行加载顺序介绍

    1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码.所以加载执行顺序是是java>jsp>js. 2. j ...

  2. Jsp页面中动态的引入另一个jsp,jsp:include路径是变量的实现

    1 问题描述 在页面搭建时,会有这样的需求,希望局部页面动态的引用另一个jsp.这里的"动态"的意思引用的jsp的路径是个变量.举个例子,我们希望局部页面可能是page1.jsp或 ...

  3. jsp页面中的EL表达式不被解析的问题

    原因:问题在web.xml配置文件上,web.xml声明部分一般分为如下版本的xsd, web-app_2_2.xsd web-app_2_3.xsd web-app_2_4.xsd web-app_ ...

  4. Java jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  5. JSTL标签急速秒杀jsp页面中的java代码(一)---Core标签库

    JSTL标签简介 ===================================================================== JSTL的全称是JavaServer Pa ...

  6. jsp页面中的java代码

    jsp页面中的java代码 1.jsp表达式  <%= ....%>  只能放置一个变量常量 2. jsp小脚本 <% .... %>  java语句,可以插入一些语句 3. ...

  7. 多个jsp页面共享Java bean

    通过jsp的内置对象—request对象获取参数: 通过超链接传参: 例:把a.jsp中i的值传到b.jsp中: 在a.jsp页面中的核心代码为: <a href="b.jsp?i=1 ...

  8. struts框架中OGNL表达式的使用之jsp页面获取action中的属性值

    在jsp页面中获取action中的值: 1.写一个action类OgnlAction类: 需要注意的地方: 如果在aciton中直接使用ognl表达式,将值存储的值栈中,是不能通过跳转将值传到jsp页 ...

  9. 在Struts2框架中使用OGNL表达式(在jsp页面中使用OGNL表达式)

    1. Struts2引入了OGNL表达式,主要是在JSP页面中获取值栈中的值 2. 具体在Struts2中怎么使用呢?如下步骤 * 需要先引入Struts2的标签库(在JSP页面的最上面位置) > ...

  10. js 和 css 中 不能使用 jsp 页面中一些 标签 和 java 代码等,应注意

    js  和 css 中 不能使用 jsp  页面中一些 标签 和 java 代码等,应注意 如 ${ }  <%%>  等

随机推荐

  1. hutool QrCodeUtil解析二维码出现NotFoundException

    解析部分二维码时出现com.google.zxing.NotFoundException:null,解析失败的二维码手机扫是能正常打开的,后面发现这个问题是因为原二维码图片太大了,将图片缩小后正常解析 ...

  2. 记录一次对MQTT协议的渗透测试经历

    前言 由于工作需要,特意翻查了MQTT的相关漏洞,并一一学习复现,在此做以学习记录,没有恶意,如有抄袭,请私信作者删除. 技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等 ...

  3. CSS——引入方式

    1.行内式 <div style="color: white;background-color: #369;text-align: center">行内设置</d ...

  4. golang sync.once done 热路径

    sync.once 为什么会将done放在结构体第一个字段,就能够提升性能了? 我们先来看看sync.once的结构体: // Once is an object that will perform ...

  5. WPF开发快速入门【6】下拉框与枚举类型

    概述 本文讲述下拉框和枚举类型进行绑定的一些操作. 下拉框的基本操作 设计部分: <ComboBox ItemsSource="{Binding Fruits}" Selec ...

  6. 最好的在线PDF转换工具服务

    工作中有时候会碰到需要转换PDF文件的情况,现在网上就要很多免费的在线工具,可以进行PDF文件的转换,下面就来介绍一些可以直接在浏览器中将文档.电子表格.和图片转换为PDF或者互相转换的服务工具. ​ ...

  7. 【阿里天池云-龙珠计划】薄书的机器学习笔记——快来一起挖掘幸福感!Task04

    [给各位看官请安] 大家一起来集齐七龙珠召唤神龙吧!!! 学习地址:AI训练营机器学习-阿里云天池 推荐一下我由此上车的公众号:AI蜗牛车,时空序列相关文章挺多的. Task01:基于逻辑回归模型的多 ...

  8. RTMP推流与B帧的关系

    一.H264数据结构 一个原始的H.264 NALU 由一个接一个的 NALU 组成的,而它的功能分为两层,VCL(视频编码层)和 NAL(网络提取层). VCL:包括核心压缩引擎和块,宏块和片的语法 ...

  9. 用Python脚本迁移MongoDB数据到金仓-kingbase数据库

    1.首先需要明确MongoDB与kingbase的对应关系,collection相当于table,filed相当于字段,根据这个对应关系创建表: 此次迁移的MongoDB里的数据字段是:_id(自动生 ...

  10. 搭建k8s集群完整版本

    搭建k8s集群完整版 基础设置 设置主机ip nmcli con add ifname ens33 con-name ens33 autoconnect yes type ethernet nmcli ...