JSP EL 算数运算符逻辑运算符
除了 empty 我们这边还有一些基本的运算符
第一种 等等于
jsp代码如下
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a","你好");
%>
<p>${a == "你好"}</p>
</body>
</html>
这里 我们在request作用域中 定义了一个a 他的值是字符串内容的 你好
然后 我们在EL中 判断 他是不是 等于 你好 这里 判断是不是等于的语法 是两个等于号
然后运行代码
很明显 我们这个条件成立 所以是 true

然后是 非等于(不等于)
我们这样写
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a","你好");
%>
<p>${a != "你好"}</p>
</body>
</html>
我们前面的代码还是没改 a的值依旧是你好
然后 我们在 EL中 判断 感叹号等于 就是判断 不等于 判断 a的值是不是不等于你好
但明显是等于的
我们运行代码 false 条件不成立

然后是 大于
我们编写代码如下
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",1);
%>
<p>${a > 1}</p>
</body>
</html>
这里 我们定义a的值为1 然后判断它是否大于1 因为都是1 也不存在谁大于谁的概念
我们运行代码
结果是false 不成立 a 不大于 1

然后 大于等于
我们可以这样写
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",1);
%>
<p>${a >= 1}</p>
</body>
</html>
这里 我们还是定义 a为1
然后 判断他是否大于等于1
我们运行代码

这边 大于等于 就是 大于或者 等于 都可以成立 那么 我们达到了 等于的条件
然后是小于和小于等于
a < 1 a <= 1
这里就不演示了 都一样的用法
然后 加法
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",1);
%>
<p>${a + 1}</p>
</body>
</html>
这里 我们定义 a 为 1 然后 EL中将他加1 那么 我们运行代码
1+1 自然就是2

然后减法
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",1);
%>
<p>${a - 1}</p>
</body>
</html>
我们将值为1的a 减掉1
运行代码
减成0 没毛病

然后 乘
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",2);
%>
<p>${a * 2}</p>
</body>
</html>
a的值为 2 EL表达式中 将a 乘以2 那么 22得4
我们运行代码

除法
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",100);
%>
<p>${a / 2}</p>
</body>
</html>
这里 我们设置a的值为 100
然后 在EL中 写它除以2
100除以 2 应该是50
我们运行代码

没有任何问题
然后 我们还可以这样写
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",100);
%>
<p>${(a / 2) > 20}</p>
</body>
</html>
我们 a的值 设置为 100
然后 EL中 判断 a除以2后的值 是否大于20
那么 我们 a除以2后是 50 自然是大于20的
我们运行代码

没错 true成立了
然后 我们这样写
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<%request.setAttribute("a",100);
%>
<p>${(a / 2) > (20 + 40)}</p>
</body>
</html>
我们 设置 a的值 为 100 然后 EL中 判断 a除以 2后 是否大于 20 加 40
a除以2 是50 20加40 是60 那么 这个条件是不成立的 我们运行代码

没错呀 家人们 结果是个 false 不成立
然后 是我们的 且 或 非
非 之前我们已经说过了 就是 前面加感叹号 会取反
然后 或
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<p>${2 == 40 || 20 == 40 || 1 == 1}</p>
</body>
</html>
这里 我们EL中写了个判断 2等于40 或者 20 等于 40 或者 1 等于 1
我们运行代码
最后 我们得到了 条件成立 true
因为 最后 1等于1是成立的 前面的都是错的 所以 或就是 只要你写在或里面的条件 有一个成立 结果就是成立

然后 且
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%request.setCharacterEncoding("UTF-8");%>
<!DOCTYPE html>
<html>
<head><title>JSP - Hello World</title>
</head>
<body>
<p>${2 == 40 && 20 == 40 && 1 == 1}</p>
</body>
</html>
这里 我们还是原来的判断 只是将或都改成了 且
运行代码

这次不成立了 简单说 且就是 写在其中的条件 只要有一个不成立 则结果直接不成立
相关文章:
JSP EL 算数运算符逻辑运算符
除了 empty 我们这边还有一些基本的运算符 第一种 等等于 jsp代码如下 <% page contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %> <%request.setCharacterEncoding("UTF-8");%> <!DOCTYPE html> <html> …...
ubuntu22.04 arrch64版在线安装node
脚本 #安装node#下载node、npm国内镜像(推荐)# 判断是否安装了nodeif type -p node; thenecho "node has been installed."elsemkdir -p /home/zenglg cd /home/zenglgwget https://registry.npmmirror.com/-/binary/node/v10.14.1/node-v10.…...
腾讯云轻量数据库开箱测评,1核1G轻量数据库测试
腾讯云轻量数据库1核1G开箱测评,轻量数据库服务采用腾讯云自研的新一代云原生数据库TDSQL-C,轻量数据库兼100%兼容MySQL数据库,实现超百万级 QPS 的高吞吐,128TB海量分布式智能存储,虽然轻量数据库为单节点架构&#x…...
Linux安全之AIDE系统入侵检测工具安装和使用
一、AIDE 系统入侵检测工具简介 AIDE,全称为Advanced Intrusion Detection Environment,是一个主要用于检测文件完整性的入侵检测工具。它能够构建一个指定文件的数据库,并使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性&am…...
【Flink】状态管理
目录 1、状态概述 1.1 无状态算子 1.2 有状态算子 2、状态分类 编辑 2.1 算子状态 2.1.1 列表状态(ListState) 2.1.2 联合列表状态(UnionListState) 2.1.3 广播状态(BroadcastState) 2.2 按键分…...
《微信小程序开发从入门到实战》学习二十八
3.4 开发参与投票页面 3.4.3 使用radio单项选择器组件 逻辑层的数据已经准备好,现在实现视图层的页面展示。 投票的标题、,描述、截止日期、是否匿名等信息通过view和text组件就可以展示。比较特别的是投票选项的展示,涉及到单选还是多选&…...
2824. 统计和小于目标的下标对数目 : 详解 “左找右“ “右找左“ 两种方式
题目描述 这是 LeetCode 上的 「2824. 统计和小于目标的下标对数目」 ,难度为 「简单」。 Tag : 「排序」、「二分」、「双指针」 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target,请你返回满足 0 < i < j < n 且 nums[i] n…...
windows电脑定时开关机设置
设置流程 右击【此电脑】>【管理】 【任务计划程序】>【创建基本任务】 gina 命令 查看 已经添加的定时任务从哪看?这里: 往下滑啦,看你刚才添加的任务:...
微信小程序取消自定义默认标题
微信小程序取消自定义默认标题 在单独页面index.json中添加 "navigationStyle":"custom"即可 注:仅记录开发查找!!!...
Vue3鼠标拖拽生成区域块并选中元素
Vue3鼠标拖拽生成区域块并选中元素,选中的元素则背景高亮(或者其它逻辑)。 <script setup> import { ref } from vue// 区域ref const regionRef ref(null)// 内容ref const itemRefs ref(null)// 是否开启绘画区域 const enable ref(false)// 鼠标开始位置…...
[深度理解] 重启 Splunk Search Head Cluster
1: 背景: 关于释放Splunk search head 的job 运行压力:splunk search head cluster 要重启的话,怎么办? 答案是:splunk rolling-restart shcluster-members Initiate a rolling restart from the command line Invoke the splunk rolling-restart command from any me…...
Python + Docker 还是 Rust + WebAssembly?
在不断发展的技术世界中,由大语言模型驱动的应用程序,通常被称为“LLM 应用”,已成为各种行业技术创新背后的驱动力。随着这些应用程序的普及,用户需求的大量涌入对底层基础设施的性能、安全性和可靠性提出了新的挑战。 Python 和…...
[汇编实操]DOSBox工具: unable to open input file: 文件名.asm问题解决
出错原因1 :将文件放在debug文件下,mount后发现并没有该文件 解决方案 :重启DOSBox,重新mount,直到dir后可以看到该asm文件 出错原因2:DOS系统不支持8位以上的文件名 解决方案 :将文件名改为8…...
Windows安装MongoDB
1、下载MongoDB的zip,解压 2、创建目录 mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\db mkdir D:\JavaSoftware\Database\MongoDB\mongodb-win32-x86_64-windows-5.0.8\data\log 3、创建一个配置文件mongod.cfg,…...
HandBrake 1.7 近日发布
导读HandBrake 1.7 近日发布,作为这个开源、免费和跨平台视频转码器应用程序的重大更新,适用于 GNU/Linux、macOS 和 Windows 系统。 在 HandBrake 1.6 发布近一年后,HandBrake 1.7 版本为 Linux 用户提供了许多好处,包括视频摘要…...
Vue3的watch使用介绍及场景
目录 一、watch的使用 1. 监听一个变量 2. 监听一个对象的属性 3. 监听一个函数的返回值 二、watch的使用场景 1. 监听表单的变化 2. 监听路由参数的变化 3. 监听Vuex中的数据变化 三、watch的效果图 四、watch的示例 以上就是Vue3的watch的介绍,watch是…...
Java设计原则和设计模式
目录 第一部分:设计原则 单一职责原则 (Single Responsibility Principle)开闭原则 (Open-Closed Principle)里氏替换原则 (Liskov Substitution Principle)接口隔离原则 (Interface Segregation Principle)依赖倒置原则 (Dependency Inversion Principle)合成/聚…...
webshell之基于框架免杀
thinkphp array_map_recursive函数 array_map_recursive函数分析 这里存在一个call_user_func命令执行函数 免杀效果 B函数 免杀效果 B函数分析 exec函数分析 在exec函数用存在有个类调用,且所有的参数都可控 smarty_php_tag函数 免杀效果 smarty_php_tag函数分析…...
QT QJsonObject 插入 QByteArray十六进制数据
场景描述 有一组十六进制数使用QByteArray进行存储;需要将其插入QJsonObject,然后通过网络发送出去;接收到后,再转换回QByteArray; 操作代码 1. QByteArray转换QString插入QJsonObject QString str ""; …...
概要设计文档案例分享
1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…...
BiliDownload终极教程:三步完成B站无水印视频下载
BiliDownload终极教程:三步完成B站无水印视频下载 【免费下载链接】BiliDownload B站视频下载工具 项目地址: https://gitcode.com/gh_mirrors/bil/BiliDownload BiliDownload是一款功能强大的B站视频下载工具,专为需要保存B站无水印视频的用户设…...
终极指南:如何用WarcraftHelper让魔兽争霸III在现代电脑上焕发新生!
终极指南:如何用WarcraftHelper让魔兽争霸III在现代电脑上焕发新生! 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典…...
从ICC老用户视角看Innovus:为什么C家工具在FinFET时代能后来居上?
从ICC老用户视角看Innovus:为什么C家工具在FinFET时代能后来居上? 作为一名在物理设计领域摸爬滚打十余年的工程师,我见证了从ICC到ICC2再到Innovus的行业变迁。记得2015年第一次接触FinFET工艺时,面对ICC频繁的崩溃和长达数小时的…...
从零部署ToolJet:开源低代码平台构建内部工具实战指南
1. 项目概述:从零到一,用开源低代码平台构建你的第一个内部工具 如果你是一名开发者、产品经理,或者是一个小团队的负责人,大概率遇到过这样的场景:业务部门提了一个紧急需求,比如需要一个简单的数据看板来…...
3步解锁Mac百度网盘下载极速:从龟速到满速的技术之旅
3步解锁Mac百度网盘下载极速:从龟速到满速的技术之旅 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否也曾面对百度网盘那令人绝望的下…...
AWPortrait-Z完整攻略:科哥WebUI从安装到精通全流程解析
AWPortrait-Z完整攻略:科哥WebUI从安装到精通全流程解析 1. 快速启动与界面初探 如果你对AI生成人像充满好奇,但又被复杂的命令行和参数吓退,那么AWPortrait-Z的WebUI界面就是为你准备的。这个由科哥基于Z-Image精心构建并二次开发的人像美…...
Stable Yogi Leather-Dress-Collection高清作品:8K放大后仍清晰的皮革纹理表现
Stable Yogi Leather-Dress-Collection高清作品:8K放大后仍清晰的皮革纹理表现 1. 惊艳的皮革纹理表现 Stable Yogi Leather-Dress-Collection展示了令人惊叹的皮革纹理生成能力。即使在8K分辨率下放大查看,皮革的纹理细节依然清晰可见,包括…...
如何用ezdxf解决CAD数据批量处理的工程挑战:从手动操作到自动化流水线
如何用ezdxf解决CAD数据批量处理的工程挑战:从手动操作到自动化流水线 【免费下载链接】ezdxf Python interface to DXF 项目地址: https://gitcode.com/gh_mirrors/ez/ezdxf 在工程设计领域,CAD图纸的批量处理一直是个技术痛点。传统的手工操作不…...
Saga分布式事务:补偿事务与协同式的实现对比
Saga分布式事务:补偿事务与协同式的实现对比 在微服务架构中,分布式事务的处理一直是技术难点之一。Saga模式作为一种流行的解决方案,通过将长事务拆分为多个本地事务,并采用补偿或协同机制来保证最终一致性。本文将对比Saga的两…...
构建AI驱动的Obsidian智能代理客户端:从原理到实践
1. 项目概述:一个为 Obsidian 设计的 AI 代理客户端如果你和我一样,是 Obsidian 的深度用户,同时又对 AI 自动化抱有极大的热情,那么你很可能已经感受到了一个痛点:我们手头有强大的笔记库,也有能力调用各种…...
