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. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明

    1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 @ 目录 1. Spring6 的JdbcTemplate的JDBC模板类的详细使用说明 每博一文案 2. 环境准备 3 ...

  2. 【问题解决】java.lang.NoSuchMethodError错误

    问题现象 近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下: A类提供了setJumpType(String type),B类调 ...

  3. warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d",&f);

    这个是C语言当中常见的错误,意思是 对于输入的scanf参数的内容,没有进行类型判断,所以才会产生这个问题. 解决方法: 1.添加if判断方式 1 if(scanf("%d",&a ...

  4. JDBC连接MySQL 8时报错:MySQLNonTransientConnectionException: Public Key Retrieval is not allowed

    需要设置属性 IDEA DBerver

  5. openstack以后需要研究一下的知识

    1. openvt是一个用于在虚拟终端上启动程序的命令行工具.它允许用户在一个新的虚拟终端(VT)上启动一个程序,并将标准输入.输出和错误输出定向到该终端. openvt的用法如下: 打开一个虚拟终端 ...

  6. 当面试官问出“Unsafe”类时,我就知道这场面试废了,祖坟都能给你问出来!

    一.写在开头 依稀记得多年以前的一场面试中,面试官从Java并发编程问到了锁,从锁问到了原子性,从原子性问到了Atomic类库(对着JUC包进行了刨根问底),从Atomic问到了CAS算法,紧接着又有 ...

  7. CentOS搭建Jellyfin影音服务器

    一. 安装Jellyfin 之前介绍过Docker安装jellyfin,但Docker安装方式存在一些限制,于是一起学习一下用RPM包在CentOS 7下安装方法. 先安装需要的依赖: yum ins ...

  8. WPF加载GIF的五种方式(Storyboard / WpfAnimatedGif / ImageAnimator / PictureBox / MediaElement)

    部分内容参考博文WPF 如何显示gif 一.使用Storyboard 效果: (1)页面xaml: <Window x:Class="PlayGifDemo.StoryboardWin ...

  9. 通过计算巢轻松部署 Walrus

    概述 Walrus 是一个用于管理和部署应用程序的平台,它提供了一个集中化的管理界面,使用户能够轻松地管理应用的生命周期,包括创建.配置.部署.监控和维护应用.Walrus 还提供了一些高级功能,如应 ...

  10. LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型

    LLM 大模型学习必知必会系列(八):10分钟微调专属于自己的大模型 1.环境安装 # 设置pip全局镜像 (加速下载) pip config set global.index-url https:/ ...