java学习之EL和JSTL
0x00前言
EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记
0x01EL
0x1基本用法
概念:Expression language 表达式语言
作用:替换和简化JSP页面中的java代码编写
语法:\({}
设置忽略EL语法
(1):在page中实现isELIgnored="true"忽略当前所有页面的el表达式
(2):/\){}忽略当前这个el表达式
0x2使用的方法
1.运算:基础的+-*/(加减乘(div)除)都可以实现
还有基础的逻辑运算&&(and )||(or)
比较运算符 <,>,>=,<=,==,!=
空运算符:empty\({empty list}判断字符串、集合、数组、是否为null和长度为0
2.获取值
语法:\){域对象.键名}
语法2:${键名}从最小的域中去找对于的键值,直到找到为止
域对象:参考前一篇文章中的内置对象中的前4个:pageContext,request,session,application(ServletContext)
pageScope---->pageContext
requestScope--->request
sessionScope--->session
applicationScope--->application(ServletContext)
使用方法:
可以通过把对象存入后直接通过属性的方法获得属性(私有的要设置get和set方法)
也可以通过对象调取方法
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("name","zhangsan" );
session.setAttribute("name","wangwu");
%>
${requestScope.name}<br>
${sessionScope.name}
</body>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ELcontent.User user = new ELcontent.User();
user.setName("zhangsan");
user.setAge(12);
user.setBirthday(new Date());
request.setAttribute("zhangsan",user);
%>
${requestScope.zhangsan.name}
${requestScope.zhangsan.getbitStr()}
</body>
</html>
3.获取list
获取对象、List集合、Map集合的值
1. 对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法
2. List集合:${域名称.键名[索引]}
3. Map集合:
${域名称.键名.key名称}
${域名称.键名["key名称"]}
0x02JSTL
0x1基础用法
1.概念:JavaServer Pages tag LiBRARY JSP标准标签库
由Apache组织提供的开源的免费的jsp标签
2.作用简化和替换JSP上面的java代码
3.使用步骤
(1)导入相关jar包
(2)引入标签库<%@taglib%>
4常用标签:if,choose,foreach
1.if 标签 ,test 必须属性,接受boolean表达式
2. choose:相当于java代码的switch语句
1. 使用choose标签声明 相当于switch声明
2. 使用when标签做判断 相当于case
3. 使用otherwise标签做其他情况的声明 相当于default
3. foreach:相当于java代码的for语句
中间遇到一个方法:一直报错期间发现了一个问题:attribute[test]不接受任何表达式
这是因为版本不兼容的问题
web.xml中版本号不兼容产生的问题;
解决方法:
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core” %>改为
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core_rt” %>
看一下demo和基础用法,
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("number",5);
%>
<c:if test="true"><h1>我是真</h1></c:if>
<c:if test="${number % 2 !=0}">
${number}为基数
</c:if>
<c:choose>
<c:when test="${number==1}">星期一</c:when>
<c:when test="${number==2}">星期二</c:when>
<c:when test="${number==3}">星期三</c:when>
<c:when test="${number==4}">星期四</c:when>
<c:when test="${number==5}">星期五</c:when>
</c:choose>
<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
<h3>begin 开始值</h3>
<h3>end 结束值</h3>
<h3>var 临时变量</h3>
<h3>step 步长</h3>
<h3>varStatus:
index:元素的索引
count=循环的次数从1开始
</h3>
${i}<br>${s.count}
</c:forEach>
</body>
</html>
0x03总结
本篇学习文章还是比较短,内容比较少主要要记住的是后面EL和JSTL的连用达到简化JSP中java代码,让后面更好操作
java学习之EL和JSTL的更多相关文章
- Java Web 学习(9) —— EL 与 JSTL
EL 与 JSTL EL与JSTL的作用是为了减少JSP页面中的代码. EL EL(Expression Language):表达式语言 常用于取值 语法 EL 表达式以${开头,以}结束. 多个表达 ...
- java学习笔记—EL表达式(38)
EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 } ...
- [Java] JSP笔记 - EL、JSTL 常用标签
一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...
- JAVA学习JSTL与EL
一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标 ...
- Java学习——JSTL标签与EL表达式之间的微妙关系
原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- JavaWeb——EL及JSTL学习总结
什么是EL表达式 为什么需要EL EL的主要作用 EL的语法 EL的开发步骤 EL实例练习 EL中的运算符 EL表达式显示内容的特点 EL的特点 EL隐式对象 EL隐式对象介绍 隐式对象实例练习 什么 ...
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- 第75节:Java的中的JSP,EL和JSTL
第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...
随机推荐
- 关于rt-thread调度器实现的底层代码分析
本文使用了rt-thread自带的钩子函数和显示函数进行了实验,从rt-thread自带的延时函数rt_thread_delay()函数入手,对rt-thread系统的调度器进行分析.主要参考资料 ...
- 7个技巧让你写出干净的 TSX 代码
原文链接:https://dev.to/ruppysuppy/7-tips-for-clean-react-typescript-code-you-must-know-2da2 "干净的代码 ...
- 用metasploit映射公网远程控制舍友电脑
用metasploit映射公网远程控制舍友电脑 Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正 ...
- 公网可用的RTMP、RTSP测试地址(2021年3月)
好多博客提到的公网可测试的RTSP和RTMP URL大多都不用了,以下是大牛直播SDK(Github)于2021年3月亲测可用的几个URL,有其他可用的URL,也欢迎大家在评论区回复. RTMP流地址 ...
- 解决swiper组件autoplay报错问题
最近在自定义一个swiper 插件 发现引用之后不定时一直在报错 Uncaught TypeError: Cannot read properties of undefined (reading 'a ...
- Echarts中tooltip解决显示指定数据
今天开发中遇到一个问题,echarts图表触摸x轴触发tooltip会将x轴上所有的数据展示出来,但是有些场合只需要展示某些数据就可以,并不需要全部展示,如下图: 这里警戒线因为需要开关,所以使用填充 ...
- Kubernetes 版本升级之路
把一个集群从1.22版升级到1.23版. 前提条件 确保备份所有重要组件,例如存储在数据库中的应用状态.Kubernetes 升级不涉及正常的工作负载,只涉及与 Kubernetes 相关的组件,但备 ...
- ElastAlert监控日志告警Web攻击行为---tomcat和nginx日志json格式
一.ELK安装 1.2 elk配置 logstash自定义配置文件,取名为filebeat_log.conf : input { beats { port => 5044 client_inac ...
- vue-router query和params 传参和接收参数
1.params 方式传递和接收参数 //传参 this.$router.push({ name: 'checkDetailInfo', params:{ fkdNum:fkdNum, jyayStr ...
- C++自学笔记 Composition:对象组合
继承是实现软件重用的一种方式. 在C++中拥有另一种实现软件重用的方式----- Composition:对象组合 用已经有的对象制造新的对象 (设计一个类的时候它的成员变量可以是另一个类的对象) 对 ...