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. IIS 部署 Python 环境

    1.安装IIS 勾选特殊CGI程序2.Python 环境 (环境变量配置)3.如果没有pip命令 先下载安装pip python setup.py install4.pip install wfast ...

  2. linux分区规划

    一般来说,对系统进行分区,需要提前规划好: ​ 系统分区:如果资源允许的话,建议300G(该分区只存放操作系统和一些配置文件等): ​ /boot分区:是引导分区(该分区损坏,系统就启动不了了),在b ...

  3. 【winform】【Socket】实现你画我猜一:核心功能开发

    我认为得核心:是把客户端画的图画实时传递给其他的客户端.   我的思路是: 1.GDI+绘图加鼠标事件,实现客户端绘图. 2.每记录鼠标有效绘图10个点,就把这10个点通过socket传递给服务器. ...

  4. 创建Django项目和应用

    1.创建Django项目 django-admin startproject 项目名称 2.创建应用app python manage.py startapp app名称

  5. WebView2在WPF中的应用

    开发环境 运行环境:.Net 6 开发环境:Visual Studio 2022 17.1.3 框架语言:WPF 安装WebView2 通过Package Manager控制台安装 Install-P ...

  6. 浅谈C#中取消令牌CancellationTokenSource

    基础操作 CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); cancellationTo ...

  7. WPF中 x:Name和Name的区别

    x:Name 唯一地标识 XAML 定义的对象,以便于从代码隐藏或通用代码中访问对象图中实例化的对象.x:Name 一旦应用于支持编程模型,便可被视为与由构造函数返回的用于保存对象引用或实例的变量等效 ...

  8. 公众号5月C#/.NET热文一览

    C#/.NET/.NET Core全面的学习.工作.面试指南知识库 转眼之间维护DotNetGuide(C#/.NET/.NET Core学习.工作.面试指南知识库)已经持续超过了三年多的时间,Com ...

  9. C# .NET 6 使用WorkFlow Core 创建工作审批流

    1,背景 工作流思想在上世纪60年代就有人提出过:70年代就有人开始尝试,但是由于当时许多的限制,工作流一直没有成功的被实现:80年代才出现第一批成功的工作流系统:90年代工作流技术走向了第一个发展高 ...

  10. kettle从入门到精通 第五十五课 ETL之kettle Excel输入

    1. Excel输入,Microsoft Excel输入步骤的作用是从Microsoft Excel中读取数据,如下图所示: 1)Excel输入步骤从文件D:\data\测试数据.xlsx读取数据. ...