Java Web 学习(9) —— EL 与 JSTL
EL 与 JSTL
EL与JSTL的作用是为了减少JSP页面中的代码。
EL
EL(Expression Language):表达式语言 常用于取值
语法
EL 表达式以${开头,以}结束。
多个表达式可以连接在一起。
<%-- a + b = 8, c + d = 10--%>
<%-- 得到 810 --%>
${a+b}${c+d}
运算符:
EL表达式可以返回任意类型的值。如果EL表达式的结果是一个带有属性的对象,则可以利用[]或者.运算符来访问该属性。[]是比较规范的形式,.运算符则比较快捷。
${beanName["propertyName"]}
${beanName.propertyName}
隐式对象

pageContext 对象表示当前JSP页面的javax.servlet.jsp.PageContext。它包含了所有其他的JSP隐式对象。
${pageContext.request}
applicationScope sessionScope requestScope pageScope 隐式对象用于获取某一范围内的值。默认情况下从小范围依次查找。
账户:<%= request.getAttribute("account") %><br/>
密码:<%= request.getAttribute("pwd") %>
<%-- 使用EL表达式取值 --%>
账户:${ requestScope.account } <br/>
密码: ${pwd}
JSTL
JSTL(JavaServer Pages Standard Tag Library):JSP 标准标签库,是一个定值标签库的集合,常用于遍历集合,条件测试,数据操作等。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
其中前缀可以任意指定。
c:out
out 将结果输出到当前页面。
<c:out value="${requestScope.name}" default="hello"/>
c:set
- 将数据放入作用域对象中,默认放入最小作用域
- 设置有界对象的属性
<%-- loc = request.location --%>
<c:set var="loc" value="${requestScope.location}" scope="page" />
<%-- loc 的 city 属性设置为 Harbin --%>
<c:set target="${loc}" property="city" value="Harbin" />
<c:set target="${loc}" property="city">Harbin</c:set>
c:remove
删除有界变量
<c:remove var="loc" scope="page" />
c:if
条件测试,并将结果保存在有界变量中。
<c:if test="${loc.city == 'Harbin'}" var="flag">
Hey
</c:if>
${flag ? "Welcome to Harbin" : "Welcome"}
c:choose c:when c:otherwise
类似与 switch case default
<c:choose>
<c:when test="${loc.city == 'Harbin' }">Welcome to Harbin</c:when>
<c:when test="${loc.city == 'Dalian' }">Welcome to Dalian</c:when>
<c:otherwise>Welcome</c:otherwise>
</c:choose>
c:forEach
<%-- 固定次数重复 --%>
<c:forEach var="x" begin="2" end="10" step="2">${x} </c:forEach>
<%-- 集合对象遍历 --%>
<c:forEach var="location" items="${locations}" varStatus="status">
<c:if test="${status.first}">begin<br/></c:if>
${status.count} ${location.city }<br/>
<c:if test="${status.last}">fin<br/></c:if>
</c:forEach>
| 属性 | 说明 |
|---|---|
| begin | 开始 |
| end | 结束 |
| step | 步长 默认1 |
| varStatus | 状态 |
| varStatus.first | 是否为第一个 |
| varStatus.last | 否为最后一个 |
| varStatus.index | 索引值(从1开始) |
| varStatus.count | 循环次数 |
c:forTokens
遍历以特定分隔符分开的标识符
<c:forTokens items="this is a test" delims=" " var="word">${word}<br/></c:forTokens>
Java Web 学习(9) —— EL 与 JSTL的更多相关文章
- java web学习总结(三十) -------------------JSTL表达式
一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...
- [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- Java Web 学习路线
实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
- Java Web学习系列——Maven Web项目中集成使用Spring
参考Java Web学习系列——创建基于Maven的Web项目一文,创建一个名为LockMIS的Maven Web项目. 添加依赖Jar包 推荐在http://mvnrepository.com/.h ...
- Java web 学习之旅
java web学习之旅 来公司十天了,感觉已经慢慢地融入了这个环境中,几个学长人都很好,都是在他们帮助下,我才能比较顺利的开始了学习java web的旅途. 来这里学习的第一个阶段是做一个简单的用户 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- springboot~yml里的自定义配置~续
之前写了关于读取自定义配置的文章springboot~yml里的自定义配置,而今天主要说一下对复杂配置信息的读取方法,我们简单的配置用@Value注解就可以了,而结构复杂的一般使用@Configura ...
- 大数据环境下mongoDB要加索引
mongodb在存储大数据时,对查询的字段需要添加索引,我测试的是阿里云30多万的数据量,不加索引查询已经到8秒,而添加索引之后是毫秒级! 为集合加索引 mongodb支持内嵌属性添加索引 db.ag ...
- Chrome是老大,Firefox 是老二,Edge 不是老三
NetMarketShare 是全球最大的电子消费市场调研机构,根据 NetMarketShare 提供的统计数据显示,来自七月份的报告,谷歌的 Chrome 在全球台式浏览器排名上仍居榜首,该公司保 ...
- SolrCloud 高可用集群搭建
1.1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的索引数据量少的时候 ...
- Docker系列03-容器Docker镜像的使用
Docker镜像的使用前两个章节,介绍了容器的相关基础知识,这章我们介绍镜像的简单使用,镜像hub里面有来自于全世界贡献的各种镜像,包括一些入门和学习练手的镜像,今天我们使用的正式其中一个用于学习练习 ...
- 表单生成器(Form Builder)之伪造表单数据番外篇——随机车辆牌照
前几天记录了一下表单生成器(Form Builder)之表单数据存储结构mongodb篇,之后便想着伪造一些数据.为什么要伪造数据呢?说来惭愧,因为拖拉拽设计表单以及表单对应的列表的PC端和移动端该显 ...
- CodeForces-1265E(期望)
题意 有1~n镜子,每个镜子说你漂亮的概率是pi/100,如果第i个回答你漂亮那么就一直问到第n个说漂亮为止,否则重新从1开始问,一天只问一个镜子,问直到镜子n说你漂亮的期望天数. 思路 设Ei为问到 ...
- [主动学习--查询策略] 01 Core-set
符号定义 主动学习每一次迭代选择的样本数量为一个 budget 训练集中初始无标签数据集记为 unlabeled data,\(\bm{u}^0\) 训练集中初始有标签数据集记为 initial la ...
- sql语句复习(基础-提升-技巧-经典数据开发案例-sql server配置)
1 基础 1.说明:创建数据库 CREATE DATABASE database-name charset=utf8 2.说明:删除数据库 drop database dbname 3.说明:备份sq ...
- PHP 管理树莓派
同学给过我一块树莓派,那会儿觉得挺新鲜的.但是每次使用都需要远程桌面或者 ssh 进行登录,比较麻烦.后来为了方便管理,在树莓派上安装部署了 LAMP 环境,然后写了一个简单的 PHP 页面,代码如下 ...