EL与JSTL
目录
EL
EL语法
EL运算符
JSTL
JSTL标签分类
JSP脚本:代码结构混乱、脚本与HTML 混合易出错、代码不易维护。
EL表达式:优化程序代码,增加程序可读性。
EL
EL语法
- EL表达式
${ EL 表达式 }
- EL操作符
操作符“ . ”
- 获取对象的属性,eg:${ news.title }
操作符"[ ] "
- 获取对象的属性,eg:${ news["title"]}
- 获取集合中的对象,eg:${ newsList[0] }
EL中严格区分大小写!!!
EL运算符
| 运算符 | 说明 |
| ( ) | 改变执行的优先级,例如${3*(4+5)} |
| +,-,*,/,% | 算术运算符,例如${3+2} |
| ==,!=,>,>=,<,<= | 关系运算符,例如${a==b}或${a eq b} |
| &&,||,! | 逻辑运算符,例如${true&&false} |
| ?: | 条件运算符,例如${a>b?1:2} |
| empty | 用于检测变量名是否为空,是否等于NULL,例如${empty name} |
关系运算符
| 关系运算符 | 范例 | 结果 |
| == 或 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 |
EL功能
- 取得JavaBean对象的属性
- ${news.title}
- 取得数组、List、Map类型对象的元素
- ${list[0]}
- 使用各类运算符对原始数据进行简单处理
- ${totalRecordCount/pageSize}
- 屏蔽一些常见的异常
- ${username}
- 能实现简单的自动类型转换
- ${news}相当于(News)request.getAttribute("news")
EL访问作用域
request.setAttribute("news", news);
两种方式取数据:
使用Java小脚本:request.getAttribute("news");
使用EL表达式: ${ news } 或者 ${ requestScope.news }
| 作用域 | Java代码取值 | EL取值 |
| 请求作用域 | request.getAttribute("news"); | ${ requestScope.news } |
| 会话作用域 | session.getAttribute("username"); | ${ sessionScope.username } |
| 程序作用域 | application.getAttribute("count"); | ${ applicationScope.count } |
| 页面作用域 | pageContext.getAttribute("userNum"); | ${ pageScope.userNum } |
JSTL
- JSP标准标签库
- 实现JSP页面中的逻辑控制
使用步骤
- 下载jstl.jar和standard.jar包
- http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
- 将这两个包复制到WEB-INF\lib目录
- 在JSP页面中添加指令
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
JSTL标签分类
| 标签库名称 | 资源标示符(uri) | 前缀(prefix) |
| 核心标签库 | http://java.sun.com/jsp/jstl/core | c |
| 国际化/格式化标签库 | http://java.sun.com/jsp/jstl/fmt | fmt |
| XML标签库 | http://java.sun.com/jsp/jstl/xml | x |
| 数据库标签库 | http://java.sun.com/jsp/jstl/sql | sql |
| 函数标签库 | http://java.sun.com/jsp/jstl/functions | fn |
核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
国际化 / 格式化标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<c:out/>标签
<c:out value="value" default="default" escapeXml="true|false" />
设置变量
<c:set var="name" value= "value" scope="" />
设置对象属性
<c:set value= "value" target="target" property="propertyName" />
<c:forEach/>标签:实现对集合的遍历
<c:forEach var="varName" items="items" varStatus="varStatus">
……
</c:forEach>
<c:if/>标签:实现条件的判断
<c:if test="condition" var="varName" scope="scope">
……
</c:if>
使用JSTL构建URL:
<c:url/>超链接标签
<c:url value="url" />
<c:param/>参数标签
<c:param name="name" value="value"/>
<c:import/>导入标签
<c:import url="URL" />
<fmt:formatDate/>标签:实现格式化的日期和时间显示
<fmt:formatDate value="date" pattern="yyyy-MM-dd HH:mm:ss"/>
| 标签名称 | 作用 |
| <c:out /> | 输出文本内容到out对象,常用于显示特殊字符,显示默认值 |
| <c:set/> | 在作用域中设置变量或对象属性的值 |
| <c:remove/> | 在作用域中移除变量的值 |
| <c:if/> | 实现条件判断结构 |
| <c:forEach/> | 实现循环结构 |
| <c:url/> | 构造url地址 |
| <c:param/> | 在url后附加参数 |
| <c:import/> | 在页面中嵌入另一个资源内容 |
| <fmt:formatDate/> | 格式化时间 |
| <fmt:formatNumber/> | 格式化数字 |
相关文章:
EL与JSTL
目录 EL EL语法 EL运算符 JSTL JSTL标签分类 JSP脚本:代码结构混乱、脚本与HTML 混合易出错、代码不易维护。 EL表达式:优化程序代码,增加程序可读性。 EL EL语法 EL表达式 ${ EL 表达式 } EL操作符 操作符“ . ” 获取对象的属性&a…...
【Linux】动态库和静态库
动态库和静态库 软链接硬链接硬链接要注意 自定义实现一个静态库(.a)解决、使用方法静态库的内部加载过程 自定义实现一个动态库(.so)动态库加载过程 静态库和动态库的特点 软链接 命令:ln -s 源文件名 目标文件名 软链接是独立连接文件的,他…...
R语言:联合多指标的ROC曲线
# 加载数据和包rm(list=ls())library(pROC)library(ggplot2)setwd("C:/Users/syy/Desktop/MRI_lab/")data<- read.csv("test1.csv", header = T)data$Groups...
将一个树形结构的数据平铺成一个一维数组(vue3)
一、需求描述 由于自带组件库没有具体完善,无法实现像element-ui这种可以多选选择任意一级的选项,也就是说,选择父级的时候不会联动选择子级的全部 例如: 所以,才会出现【二、案例场景】类似的场景,可以用来多选 ,并可以实现单选父级而不关联子级,选择了将树状数据进…...
OSCS开源安全周报第 56 期:Apache Airflow Spark Provider 任意文件读取漏洞
本周安全态势综述 OSCS 社区共收录安全漏洞 3 个,公开漏洞值得关注的是 Apache NiFi 连接 URL 验证绕过漏洞(CVE-2023-40037)、PowerJob 未授权访问漏洞(CVE-2023-36106)、Apache Airflow Spark Provider 任意文件读取漏洞(CVE-2023-40272)。 针对 NPM 、PyPI 仓库…...
CleanMyMac2024永久版Mac清理工具
Mac电脑作为相对封闭的一个系统,它会中毒吗?如果有一天Mac电脑产生了疑似中毒或者遭到恶意不知名攻击的现象,那又应该如何从容应对呢?这些问题都是小编使用Mac系统一段时间后产生的疑惑,通过一番搜索研究,小…...
软考高级系统架构设计师(一)计算机硬件
【原文链接】软考高级系统架构设计师(一)计算机硬件 1.1 计算机硬件组成 1.1.1 计算机的基本硬件组成 运算器控制器存储器输入设备输出设备 1.1.2 中央处理单元(CPU) 中央处理单元(CPU)的组成 运算器…...
bat文件中自定义cmd命令;执行完退出命令提示符窗口
1. bat中启动cmd命令 start cmd /k " cmd中命令行里自定义的命令 " 2.编写规则 start cmd /k "命令1 & 命令2 & 命令3" (无论前面命令是否成功, 后面都会执行start cmd /k "命令1 && 命令2 && 命令3 " (仅…...
深度学习的经典算法的论文、解读和代码实现
文章目录 CNN网络的经典算法LeNet-5AlexNetVGGInceptionInception-v1(GoogLeNet)BN-Inception ResNetR-CNNR-CNNFast R-CNNFaster R-CNN YOLOYOLO v1YOLO v2YOLO v3YOLO v4 RNN的经典算法RNNGRULSTMEncoder-DecoderAttentionTransformer CNN网络的经典算法 LeNet-5 来源论文&…...
开源TTS+gtx1080+cuda11.7+conda+python3.9吊打百度TTS
一、简介 开源项目,文本提示的生成音频模型 https://github.com/suno-ai/bark Bark是由Suno创建的基于变换器的文本到音频模型。Bark可以生成极为逼真的多语种演讲以及其他音频 - 包括音乐、背景噪音和简单的声音效果。该模型还可以产生非言语沟通,如…...
【私有GPT】CHATGLM-6B部署教程
【私有GPT】CHATGLM-6B部署教程 CHATGLM-6B是什么? ChatGLM-6B是清华大学知识工程和数据挖掘小组(Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University)发布的一个开源的对话机器人。根据官方介绍,这是…...
基于“R语言+遥感“水环境综合评价方法教程
详情点击链接:基于"R语言遥感"水环境综合评价方法教程 一:R语言 1.1 R语言特点(R语言) 1.2 安装R(R语言) 1.3 安装RStudio(R语言) (1)下载地址…...
To_Heart—题解——P6234 [eJOI2019] T形覆盖
link. 突然很想写这篇题解。虽然题目不算难。 考场只有30分是为什么呢?看来是我没有完全理解这道题目吧! 首先很明显的转换是,把 T 型覆盖看成十字形,再考虑最后减去某一块的贡献。 然后然后直接往原图上面放十字形!对于每一个…...
[软件工具]精灵标注助手目标检测数据集格式转VOC或者yolo
有时候我们拿到一个数据集发现是xml文件格式如下: <?xml version"1.0" ?> <doc><path>C:\Users\Administrator\Desktop\test\000000000074.jpg</path><outputs><object><item><name>dog</name>…...
Spring BeanName自动生成原理
先看代码演示 项目先定义一个User类 public class User {private String name;Overridepublic String toString() {return "User{" "name" name \ };}public String getName() {return name;}public void setName(String name) {this.name name;} }…...
论文阅读_图形图像_U-NET
name_en: U-Net: Convolutional Networks for Biomedical Image Segmentation name_ch: U-Net:用于生物医学图像分割的卷积网络 addr: http://link.springer.com/10.1007/978-3-319-24574-4_28 doi: 10.1007/978-3-319-24574-4_28 date_read: 2023-02-08 date_publi…...
基于热交换算法优化的BP神经网络(预测应用) - 附代码
基于热交换算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于热交换算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.热交换优化BP神经网络2.1 BP神经网络参数设置2.2 热交换算法应用 4.测试结果:5.Matlab代…...
基于秃鹰算法优化的BP神经网络(预测应用) - 附代码
基于秃鹰算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于秃鹰算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.秃鹰优化BP神经网络2.1 BP神经网络参数设置2.2 秃鹰算法应用 4.测试结果:5.Matlab代码 摘要…...
2.文章复现《热电联产系统在区域综合能源系统中的定容选址研究》(附matlab程序)
0.代码链接 1.简述 光热发电是大规模利用太阳能的新兴方式,其储热系 统能够调节光热电站的出力特性,进而缓解光热电站并网带来的火电机组调峰问题。合理配置光热电站储热容量,能够 有效降低火电机组调峰成本。该文提出一种光热电站储热容 量配…...
如何开启esxi主机的ssh远程连接
环境:esxi主机,说明:esxi主机默认ssh是不开启的,需要人工手动启动,也可以设置同esxi主机一起开机启动。 1、找到esxi主机,点击“配置”那里,再点击右边的属性,如图所示: …...
Qt QSettings管理Windows环境变量:原理、实现与实战优化
1. 项目概述最近在做一个Qt开发的桌面工具,里面有个功能点需要动态修改用户的系统环境变量,比如把一些我们自己打包的工具路径加到用户的PATH里,这样用户在其他地方打开命令行也能直接调用。一开始想着用系统API或者直接写注册表,…...
AutoSar网络管理(NM)与0x28通信控制服务:搞懂主从节点,精准控制子总线流量
AutoSar网络管理中0x28服务的拓扑控制艺术:主从架构与子总线流量精准调度 在车载电子系统日益复杂的今天,一条CAN总线上可能挂着十几个ECU节点,而网关则需要管理多条这样的总线。想象一下,当某个子总线上的节点需要软件更新时&…...
不止于获取数据:用baostock+Pandas+Matplotlib打造你的第一个股票分析仪表盘
从数据获取到洞察生成:构建股票分析仪表盘的全流程实战 在金融数据分析领域,获取原始数据只是万里长征的第一步。真正有价值的是如何将这些数据转化为可操作的洞察。本文将带你使用Python生态中的baostock、Pandas和Matplotlib等工具,构建一个…...
【Perplexity健身计划搜索实战指南】:20年AI搜索专家亲授3大精准检索心法,错过再等一年
更多请点击: https://codechina.net 第一章:Perplexity健身计划搜索实战指南导论 Perplexity 是一款以推理深度和引用可追溯性见长的 AI 搜索工具,特别适合需要结构化、证据支撑型信息检索的场景。在健身领域,用户常面临计划泛滥…...
别光顾着写EXP:复盘BUUCTF warmup_csaw_2016,聊聊PWN题里的‘信息泄露’与安全编程
从CTF漏洞利用到安全编程:深入解析信息泄露与防御实践 引言 在网络安全竞赛和实际系统安全中,信息泄露往往成为攻击者突破防御的第一块敲门砖。2016年CSAW CTF的warmup题目虽然看似简单,却完美展示了这类漏洞的典型模式——程序不仅存在栈溢出…...
PotPlayer百度翻译插件终极指南:免费实现20+语言实时字幕翻译
PotPlayer百度翻译插件终极指南:免费实现20语言实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu PotPlayer字幕…...
拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验
拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想…...
边缘金融大语言模型的高效部署与实时推理优化
1. 边缘金融大语言模型的技术背景与挑战金融行业每天产生海量非结构化数据,包括客户咨询记录、财报文本、新闻舆情等。传统NLP模型在处理这类数据时面临两个核心痛点:一是无法理解金融专业术语背后的复杂语义(如"可转债"在不同上下…...
解决Keil MDK中STM32 I2C驱动编译错误
1. 问题现象与背景分析最近在使用Keil MDK开发STM32项目时,遇到一个典型的编译错误。具体表现为:当使用STM32CubeMX生成项目并导入Keil MDK后,编译过程中CMSIS I2C驱动报出以下错误:error: use of undeclared identifier MX_I2C1_…...
告别手动传图!用PicGo+Gitee给Typora配个自动图床(保姆级配置+避坑清单)
打造无缝Markdown写作体验:自动化图床配置全攻略 在技术写作和知识管理的世界里,Markdown已经成为事实上的标准格式。然而,一个长期困扰写作者的问题始终存在——图片管理。传统方式需要手动上传图片到图床,复制链接,再…...
