EL与JSTL注意事项汇总

EL使用表达式(5一个 问题)
JSTL使用标签(5问题)
什么是EL。它可以用做?
EL全名Expression Language在JSP使用页面
格公式${表达式}
样例${requestScope.customer.id}
功能:
1.才四个域对象中取出属性数据显示


(pageContext.request.session.application)


2.取出请求參数数据显示


<%
request.setAttribute("person",new Person("xfzhanag",18));
%>
Map<String,Person> map=new HashMap<String,Person>();
map.put("A",new Person("AA",12));
map.put(""B",new Person("BB",13));
map.B.age${requestScope.B.age};
map.B.age${requestScope.['B'].age};


${requestScope.person.name};
${requestScope.person['name']};
List里面的第二个数据
<%


<%
List list=new ArrayList();
list.add("a");
list.add("b");
list.add("c");
request.setAttribute("List",list);


%>


${requestScope.List[1]};
${requestScope.List['name']};


我的年龄:<requestScope.person.name><br/>
//什么方便?为什么有个中括号?
/*
一种情况?
${requestScope['my person'].name};
map.put("my person",new Person("Xxx",12));


*/
EL能进行的运算?
算数运算(+,-, * ,/ ,%)
关系运算(>,<,==,!=)
逻辑运算(&&,||)
empty运算(推断一个数据是否是空)
(null,空字符串,空集合)


${empty name}<br>
${empty list}<br>
${empty person}<br>


三目条件运算
${requestScope.person.age>18 ? '成年' : '未成年' }
${person.age>18 ? '成年' : '未成年' }
<!--不加隐含对象。如何找到的呢?
pageScope,requestScope,
sessionScope,applicationScope
从小到大的一个范围!
-->
<%
request.setAttribute("list",new ArrayList());
request.setAttribute("name","");
request.setAttribute("person","new Pseron("Xxx",19));
%>
隐含对象
PageContext javax.servlet.ServletContext
PageScope java.uti.Map
RequestScope java.util.Map
sessionScope java.util.Map
applicationScope java.util.Map
param java.util.Map
EL怎样获取对象的内部数据?
获取的方式
通过点(.)来取数据
通过中括号[]来取数据
对象的类型
一般对象
Map对象
数组/List/Set
EL的不足在哪?
不能遍历。逻辑推断差
JSTL(5个问题)
什么是JSTL,它能做什么?
JSTL为jsp stardard tag library在jsp页面使用
功能:实现数据基本输入输出,流程控制,循环,国际化等功能
JSTL  前置名称               URI 范例
核心标签库     c http://sun.com/jsp/jstl/core c:out
I18格式标签库 fmt http://sun.com/jsp/jstl/xml


fmt:formDate
SQL标签库     sql http://sun.com/jsp/jstl/sql sql:query
xml标签库     xml http://sun.com/jsp/jstl/fmt x:forBach
函数标签库     fn http://sun.com/jsp/jstl/function fn:split
为什么使用JSTL?
在jsp中使用jsp脚本+jsp表达式也能够做循环输出,太麻烦
EL不能做遍历工作
JSTL能做这些并且与jsp和html的标签能够非常好的结合
JSTL高速入门
1.导入JSTL相关的jar包:
jstl.jar
standard.jar


2.在jsp文件里导入JSTL的c标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" perfix="c" 


%>


3
<%
List<String> list=new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
request.setAttribute("list",list);


%>
<c:forEach items="${requestScope.list}" var="item">
${item}<br/>
</c:forEach>


jstl怎样做流程控制?
c:if(一重条件推断)
c:choose 
c:when


//需求1:假设我的年龄小于18就输出未成年成(红色字体)
<c:if test="${person.age<18}">
<font color="red">未成年人</font>
</c:if>


需求2:假设年龄大于60,就输出’老头子‘
假设年龄小于18,就输出"小屁孩"
其它。就输出"成年人"
<br/>
<c:choose>
<c:when test="${person.age>60}">老头子


</c:when>
<c:when test="${person.age<18}">小屁孩


</c:when>
<c:otherwise>成年人</c:otherwise>
</c:choose>
jstl怎样做遍历?
<%
Map<String,Person> map=new 


HashMap<String,Person>();
map.put("1",new Person("AA",23));
map.put("2",new Person("BB",23));
map.put("3",new Person("CC",23));
map.put("4",new Person("DD",23));
map.put("5",new Person("EE",23));
map.put("6",new Person("FF",23));
request.setAttribute("personMap",map);
%>
<h3>将数据用表格显示出来</h3>
<table border="1" style="width:300px">
<tr>
<td>ID</td>
<td>姓名</td>
<td>年龄</td>
</tr>
<c:forEach items="${personMap}" var="item">
<!--${itm.class}-->
<tr>
<td>${item.key}</td>
<td>${item.value.name}</td>
<td>${item.value.age}</td>
</tr>
</table>

版权声明:本文博客原创文章,博客,未经同意,不得转载。

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

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

相关文章

nextboolean()_Java Random nextBoolean()方法与示例

nextboolean()随机类nextBoolean()方法 (Random Class nextBoolean() method) nextBoolean() method is available in java.util package. nextBoolean()方法在java.util包中可用。 nextBoolean() method is used to return the next pseudo-random Boolean value from this Ra…

50行代码,搞定敏感数据读写!

每天早上七点三十&#xff0c;准时推送干货一、介绍在实际的软件系统开发过程中&#xff0c;由于业务的需求&#xff0c;在代码层面实现数据的脱敏还是远远不够的&#xff0c;往往还需要在数据库层面针对某些关键性的敏感信息&#xff0c;例如&#xff1a;身份证号、银行卡号、…

【Python】导入资源管理器的文件列表(计算文件和文件夹大小)

文章目录1.按照扩展名进行分类2.导出文件的大小3.计算文件夹大小4.分类到字典5.完整代码及效果1.按照扩展名进行分类 使用Python查询一个路径下的所有文件可以借助glob模块以及os模块。 在导入文件列表之前&#xff0c;我们需要指定我们的操作目录&#xff0c;操作目录一经指定…

SublimeText2使用笔记

将Sublime Text2 加入右键菜单&#xff08;转&#xff09; 1. 运行中输入 regedit 打开注册表 2. 在HKEY_CLASSES_ROOT/*/shell/ 下新建’项’ ,名称自己觉得.我用的是Sublime Text 3. 在 Sublime Text 下 新建’项’ 名字:command (这个貌似不可以修改) 4. 点击 command ,在右…

Java Package getPackage()方法与示例

包类的getPackage()方法 (Package Class getPackage() method) getPackage() method is available in java.lang package. getPackage()方法在java.lang包中可用。 getPackage() method is used to search a package by given package name in the callers ClassLoader instanc…

HashMap 中的一个“坑”!

作者 | 王磊来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09;转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09;最近公司新来了一个小伙伴&#xff0c;问了磊哥一个比较“奇怪”的问题&#xff0c;这个问题本身的难度并不大&#xff0c;但…

【Python】交互式界面创建函数

文章目录简介规则思路示例代码与运行效果简介 运行Python时&#xff0c;在程序运行过程中手动输入一个函数表达式&#xff0c;并将其作为一个函数进行后续的调用工作&#xff0c;类似于Matlab里面的匿名函数。这个功能使用传统语言会相当麻烦&#xff0c;当然&#xff0c;我也…

原生 js前端路由系统实现3之代码 构建工具 和 querystring功能

为什么80%的码农都做不了架构师&#xff1f;>>> 构建 目前前端构建工具流行的是 grunk.js 功能是大而全&#xff0c;但往往大而全的东西为了多样性 需要做额外的配置 我还是想要有一个专门为自己特性项目而生构建工具 我不想加载第三方的node模块&#xff0c;也不…

单例模式,真不简单

前言单例模式无论在我们面试&#xff0c;还是日常工作中&#xff0c;都会面对的问题。但很多单例模式的细节&#xff0c;值得我们深入探索一下。这篇文章透过单例模式&#xff0c;串联了多方面基础知识&#xff0c;非常值得一读。1 什么是单例模式&#xff1f;单例模式是一种非…

【python】最优化方法之一维搜索(黄金分割法+斐波那契法)

文章目录1.概念2.遍历搜索3.优化算法3.1.一维搜索原则3.2.黄金分割法Code Block3.3.斐波拉契法Code Block1.概念 \qquad一维搜索是最优化方法最简单的一种&#xff0c;即求一个在(a,b)内&#xff0c;连续下单峰函数f(x)f(x)f(x)的极小值。所谓下单峰函数就是只有一个极小值的函…

MySQL系列之E-1------MySQL主从复制原理

主从复制是异步复制,可以通过google的一个插件实现半同步E.1 主从复制原理1、建立主从复制的用户名和密码2、将master上主库需要进行复制的库“锁库”3、通过mysqldump备份master上主库&#xff0c;“解锁“&#xff0c;在slave端进行恢复4、更改配置文件5、在丛库上执行change…

Java Long类的valueOf()方法及示例

Syntax: 句法&#xff1a; public static Long valueOf (long value);public static Long valueOf (String value);public static Long valueOf (String value, int radixs);长类valueOf()方法 (Long class valueOf() method) valueOf() method is available in java.lang pac…

工作中常用的 6 种设计模式!

前言 哈喽&#xff0c;大家好。平时我们写代码呢&#xff0c;多数情况都是流水线式写代码&#xff0c;基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢&#xff0c;我觉得&#xff0c;最好的方式就是&#xff1a;使用设计模式优化自己的业务代码。今天跟大家聊聊日常工作中…

【Matlab/C/Python/VB/...】代码复制到word时如何变成彩色的

文章目录下载Notepad复制代码在Notepad粘贴在word中粘贴下载Notepad Notepad是一款免费的Windows软件&#xff0c;一般Windows10和Windows7系统都已经自带&#xff0c;也可以在应用商店直接搜索下载 「win10系统兼容的是7.8版本」 复制代码 在语言编辑乱码复制代码&#xff…

Java Formatter toString()方法与示例

格式化程序类toString()方法 (Formatter Class toString() method) toString() method is available in java.util package. toString()方法在java.util包中可用。 toString() method is for the string representation of this Formatter. toString()方法用于此Formatter的字符…

hadoop 2.5.0安装和配置

安装hadoop要先做以下准备&#xff1a; 1.jdk&#xff0c;安装教程在 http://www.cnblogs.com/stardjyeah/p/4640917.html 2.ssh无密码验证&#xff0c;配置教程在 http://www.cnblogs.com/stardjyeah/p/4641524.html 3.linux静态ip配置&#xff0c;教程在 http://www.cnblo…

基于双线性插值的图像旋转原理及MATLAB实现(非自带函数)

目录1.图像旋转的原理1.1.旋转矩阵1.2.双线性插值1.3.像素点匹配2.实现效果与说明1.图像旋转的原理 1.1.旋转矩阵 旋转一幅图像&#xff08;假设这幅图像大小是矩形的&#xff09;&#xff0c;当然应该从像素点&#xff08;pixels&#xff09;开始&#xff0c;在直角坐标系中…

漫画:给女朋友介绍什么是 “元宇宙” ?

什么是更高的自由度呢&#xff1f;或许有人觉得&#xff0c;我们在网络游戏当中&#xff0c;不是也很自由吗&#xff1f;想怎么玩就怎么玩。但是&#xff0c;无论一款网络游戏的元素有多么丰富&#xff0c;游戏当中的角色、任务、职业、道具、场景&#xff0c;都是游戏设计师预…

document.createElement

document.createElement()的用法document.createElement()是在对象中创建一个对象&#xff0c;要与appendChild() 或 insertBefore()方法联合使用。其中&#xff0c;appendChild() 方法在节点的子节点列表末添加新的子节点。insertBefore() 方法在节点的子节点列表任意位置插入…

double.isnan_Java Double类isNaN()方法与示例

double.isnanSyntax: 句法&#xff1a; public boolean isNaN ();public static boolean isNaN(double value);双类isNaN()方法 (Double class isNaN() method) isNaN() method is available in java.lang package. isNaN()方法在java.lang包中可用。 isNaN() method is used …