【11 EL表达式JSTL 学习笔记 】

news2024/12/23 14:55:33

EL表达式 学习笔记

    • 1. EL表达式介绍
    • 2. EL表达式的基本使用
    • 3. EL 表达式获取数据
    • 4. EL注意事项
    • 5. EL表达式运算符
      • 关系运算符
      • 逻辑运算符
      • empty&三元运算符
    • 6. EL表达式细节
    • 7. EL表达式11个隐式对象
    • 8. JSTL
      • 8.1 JSTL的基本使用

1. EL表达式介绍

简化了 java代码块和jsp表达式的方式
在这里插入图片描述

2. EL表达式的基本使用


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式的使用</title>
</head>
<body>
<%--  1. 向域对象中添加数据--%>
<% request.setAttribute("username","zhangsan");%>
<%--  2. 获取数据--%>
Java代码块:<% out.println(request.getAttribute("username"));  %><br>
JSP表达式:<%=request.getAttribute("username") %><br>
EL表达式: ${username}
</body>
</html>

都可以拿到:
在这里插入图片描述

3. EL 表达式获取数据

在这里插入图片描述

<%@ page import="com.example.jsp.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式获取不同类型的数据</title>
</head>
<body>
<%--1. 获取基本数据类型--%>
<% pageContext.setAttribute("num","10"); %>
基本数据类型:${num}<br>
<%--2. 获取自定义对象类型--%>
<% Student student=new Student("zhangsan",18,99);
   pageContext.setAttribute("stu",student);
%>
自定义对象类型: 姓名:${stu.username}<br>
自定义对象类型: 年龄:${stu.age}<br>
自定义对象类型: 成绩:${stu.score}<br>
<%--3. 获取数组 类型--%>
<% String arr []={"hello","sssa"};
  pageContext.setAttribute("arr",arr);
%>
数组类型:${arr}<br>
数组类型:0索引元素:${arr[0]}<br>
数组类型:1索引元素:${arr[1]}<br>

<%--4. 获取List集合--%>
<% ArrayList<String> list =new ArrayList();
 list.add("123");
 list.add("456");
 pageContext.setAttribute("list",list);
%>
List集合:${list}<br>
List集合:0索引元素:${list[0]}<br>
List集合:1索引元素:${list[1]}<br>
<%--5. 获取Map集合--%>
<% Map<String,Student> map=new HashMap();
     map.put("mp1",new Student("zhangsan",18,99));
     map.put("mp2",new Student("lisi",19,95));
  pageContext.setAttribute("map",map);
%>
Map集合:${map}<br>
Map集合:0索引元素:姓名:${map.mp1.username}年龄:${map.mp1.age}成绩:${map.mp1.score}<br>
Map集合:1索引元素:姓名:${map.mp2.username}年龄:${map.mp2.age}成绩:${map.mp2.score}<br>

</body>
</html>

在这里插入图片描述

4. EL注意事项

在这里插入图片描述

5. EL表达式运算符

关系运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

empty&三元运算符

在这里插入图片描述


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式运算符</title>
</head>
<body>
<%--  empty--%>
 <%  String str=null;
 String str2="";
 int []arr={};
 %>
${empty str}
${empty str2}
${empty arr}
<%--三元运算符  获取性别数据 在对应的按钮上勾选--%>
<% pageContext.setAttribute("gender","women");%>
<input type="radio" name="gender" value="men" ${gender=="men"?"checked":""}><input type="radio" name="gender" value="women" ${gender=="women"?"checked":""}></body>
</html>

在这里插入图片描述

6. EL表达式细节

在这里插入图片描述

<%--
  Created by IntelliJ IDEA.
  User: Tmac1
  Date: 2023/4/20
  Time: 23:12
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式使用细节</title>
</head>
<body>

<%--获取四大域对象中的数据  逐一从小到大获取--%>
<%--页面域对象--%>
<% pageContext.setAttribute("username","zhangsan");%>
<%--请求域对象--%>
<% request.setAttribute("username","zhangsan"); %>
<%--&lt;%&ndash;会话域对象&ndash;%&gt;--%>
<% session.setAttribute("username","zhangsan");%>
<%--&lt;%&ndash;应用域对象&ndash;%&gt;--%>
<% application.setAttribute("username","zhangsan");%>

${username}

<%--获取jsp其他八个隐式对象 获取虚拟目录名称--%>
<br>
虚拟目录:<%=request.getContextPath()%><br>
EL表达式形式虚拟目录:${pageContext.request.contextPath}<br>
</body>
</html>

在这里插入图片描述

7. EL表达式11个隐式对象

在这里插入图片描述


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>EL表达式11个隐式对象</title>
</head>
<body>
<%--  pageContext对象 可以获取其他三个域对象和jsp中八个隐式对象--%>
虚拟目录:${pageContext.request.contextPath}<br>
<%--applicationScope sessionScope  requestScope PageContextScope 操作四大域对象中的数据--%>
<% request.setAttribute("username","zhangsan"); %>
${username}<br>
直接从请求域对象中获取数据: ${requestScope.username}<br>
<%--header headerValues 获取请求头数据--%>
header 获取 connection:${header["connection"]} <br>
headerValues  获取 connection:${headerValues["connection"][0]} <br>

<%--param paramValues    获取请求参数数据--%>
param:  ${param.username}<br>
paramValues:  ${paramValues.hobby[0]}<br>
paramValues:  ${paramValues.hobby[1]}<br>
<%-- initParam 获取全局配置参数--%>
initParam: ${initParam["pname"]}<br>
<%--cookie 获取cookie信息--%>
<%--直接写cookie 获取的是Map集合--%>
${cookie}<br>
<%----%>
${cookie.JSESSIONID}<br>
<%--获取cookie对象的名称--%>
cookie.JSESSIONID.name:    ${cookie.JSESSIONID.name}<br>
<%--获取cookie对象的值--%>
cookie.JSESSIONID.value: ${cookie.JSESSIONID.value}<br>
</body>
</html>

在这里插入图片描述

8. JSTL

JSTL为了来取代jsp页面中的java代码块部分
在这里插入图片描述

8.1 JSTL的基本使用

在这里插入图片描述

在这里插入图片描述
但条件和多条件判断
在这里插入图片描述
循环迭代
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT的开源平替,终于来了!

最近这段时间&#xff0c;一个号称全球最大ChatGPT开源平替项目Open Assistant引起了大家的注意。 这不最近还登上了GitHub的Trending热榜。 https://github.com/LAION-AI/Open-Assistant 根据官方的介绍&#xff0c;Open Assistant也是一个对话式的大型语言模型项目&#xff…

RUST 每日一省:生命周期作用域

生命周期 一个变量的生命周期就是它从创建到销毁的整个过程。 作用域 我们声明的每个变量都有作用域。作用域其实是变量和值存在的环境。作用域是由一对花括号表示的。例如&#xff0c;使用块表达式会创建一个作用域&#xff0c;即任何以花括号开头和结尾的表达式。此…

RabbitMQ-整合mqtt

用 springboot rabbitmq可以搭建物联网&#xff08;IOT&#xff09;平台&#xff0c;rabbitmq 不是消息队列吗&#xff0c;原来rabbitmq有两种协议&#xff0c;消息队列是用的AMQP协议&#xff0c;而用在智能硬件中的是MQTT协议。 一、rabbitmq是什么&#xff1f; RabbitMQ就…

一张图了解GPU、CUDA、CUDA toolkit和pytorch的关系

文章目录 GPU、Cuda Driver和 Cuda Toolkit的图解关系省流&#xff0c;简略版本要实现多版本的cuda怎么办 复杂版&#xff08;你要是觉得简略版说的太简单&#xff0c;这里给你找文档证明&#xff09;一、Nvidia Driver和CUDA Toolkit的关系安装GPU显卡驱动Nvidia Driver 二、C…

uniapp请求图片时候发现提示GET http://localhost:xxxx/undefined 401,undefined:1解决办法【伸手党福利】

同理解决问题&#xff1a;所有请求发起完成之后执行业务逻辑 目录 现象原因解决办法方法1&#xff1a;提前给变量一个非空默认值方法2&#xff1a;使用前端图片代替后端方法3&#xff1a;使用异步加载判断&#xff1a;注意&#xff1a;这种直接在页面判断内容是否为空或者undef…

Java JVM基础入门(一):jvm的组成、串池、常量池、常用程序调优参数

JVM JVM是java的虚拟机&#xff0c;java的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收功能 JDK、JRE、JVM的关系图 常见的JVM&#xff1a; oracle的Hotspot是我们通常使…

矿山电子封条智能监管算法 yolov8

矿山电子封条智能监管系统通过YOLOv8python网络模型技术&#xff0c;矿山电子封条智能监管算法模型在对矿井人数变化、生产作业状态、出入井人员等情况实时监测分析&#xff0c;发现煤矿人员作业及状态异常动态及时告警&#xff0c;自动将报警信息推送给后台。YOLOv8 算法的核心…

k8s部署ingress-nginx步骤

目录 一、ingress简介 二、部署ingress controller、ingress-service 三、创建对外服务deployment和service 四、创建HTTP代理yaml 五、测试 六、公网域名测试 七、参考博客 一、ingress简介 service的作用体现在两个方面&#xff0c;对集群内部&#xff0c;它不断跟踪…

[计算机图形学]光线追踪的基本原理(前瞻预习/复习回顾)

一、光栅化的弊端 我们为什么要用光线追踪呢&#xff0c;在之前的篇章中&#xff0c;我们提到了&#xff0c;光栅化的方式很难表示一些全局的效果&#xff0c;如(1)软阴影&#xff0c;(2)Glossy的反射(类似镜子但又不像镜子那么光滑的材质&#xff0c;如打磨的铜镜和一些金属)&…

【GIT】git push后github没看到pull requests解决

当你在Github上push代码后&#xff0c;如果在远程仓库中没有看到pull request请求&#xff0c;那么有以下几种可能的原因&#xff1a; 未创建pull request 如果在本地使用git push命令将修改推送到Github上&#xff0c;但还没有在Github上创建pull request请求&#xff0c;则不…

FreeRTOS 队列(一)

文章目录 一、队列简介1. 数据存储2. 多任务访问3. 出队阻塞4. 入队阻塞5. 队列操作过程图示 二、队列结构体三、队列创建1. 函数原型&#xff08;1&#xff09;函数 xQueueCreate()&#xff08;2&#xff09;函数 xQueueCreateStatic()&#xff08;3&#xff09;函数 xQueueGe…

Golang每日一练(leetDay0045)

目录 133. 克隆图 Clone Graph &#x1f31f;&#x1f31f; 134. 加油站 Gas Station &#x1f31f;&#x1f31f; 135. 分发糖果 Candy &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 …

【PR 基础】设置上下黑白边的两种方法

方法1 点击 文件-》新建-》旧版标题 点击确定 点击矩形工具 利用矩形工具框选出上下黑白边 款选完成后点击关闭 将刚创建的字幕拖入轨道 可以修改其持续时长与视频时长保持一致 如果想要修改字幕可以双击来修改 比如可以将颜色改为黑色 方法2 点击号&#xff0c;再选择安全边…

如何在表格里面使用VSTACK、HSTACK等函数

如何在表格里面使用VSTACK、HSTACK等函数 书接前文 ONLYOFFICE 桌面编辑器 v7.3 新功能介绍 里面介绍了最新版本的表格里面&#xff0c;添加的公式将帮助您更高效地进行数据计算&#xff1a;TEXTBEFORE、TEXTAFTER、TEXTSPLIT、VSTACK、HSTACK、TOROW、TOCOL、WRAPROWS、WRA…

IPSEC VPN

1.数据认证的介绍、作用、实现的技术手段 数据认证是指通过一系列验证过程检查数据的完整性、真实性、可靠性和准确性&#xff0c;以确保这些数据来自于已知或可信的来源。数据认证的目的是保护数据免受篡改、冒充或欺骗等威胁&#xff0c;确保数据的安全性和可信度。实现数据…

Windows 彻底卸载联软流氓软件(亲测可用)

文章目录 1、前言2、卸载步骤&#xff08;1&#xff09;打开服务&#xff0c;将所有Uni开头的服务都禁用&#xff0c;某些服务禁用后可能还是会自启&#xff0c;不过不影响&#xff08;2&#xff09;进入安全模式&#xff0c;电脑重启&#xff08;3&#xff09;重启后桌面显示了…

怎么将照片KB调小?压缩照片kb的几个方法

将照片KB调小的意思是将照片文件的大小缩小&#xff0c;使其占据更小的存储空间。在一些特定场景下&#xff0c;如网页设计、邮件发送、上传文件等&#xff0c;限制了文件大小&#xff0c;因此需要将照片压缩到规定大小以内。通常情况下&#xff0c;压缩后的照片质量会相应降低…

18.Java泛型

目录 1. Java基本介绍 2. JDK下载安装及其环境配置 3. 一个简单的java程序 4. Eclipse基本使用、数据类型、运算符 5. 控制语句&#xff08;if、switch、for、while、foreach&#xff09; 6. Java数组 7. Java字符串对象(String|StringBuffer|StringBuilder|StringJoiner…

关闭默认共享服务

目录 1.从网络上关闭共享协议2.禁用共享服务3.关闭防火墙共享端口4.脚本自启动删除默认共享5.修改注册表彻底屏蔽共享 共5种方法&#xff0c;推荐前三种搭配。 1.从网络上关闭共享协议 打开网络和共享中心->本地连接->属性把" Microsoft 网络的文件和打印机共享&qu…

Word如何插入图片?最全方法总结(2023新版)

案例&#xff1a;Word如何插入图片 【我最近在写毕业论文&#xff0c;需要在Word文档里添加一些图片&#xff0c;想问问大家Word如何插入图片呀&#xff1f;感谢回答&#xff01;】 Microsoft Word是一个广泛使用的文字处理软件&#xff0c;在使用中如果插入图片可以很好的丰…