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 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- TimeSpan的用法
TimeSpan的属性和方法: 下面的列表涵盖了其中的一部分: 属性: Add:与另一个TimeSpan值相加. Days: 返回用天数计算的TimeSpan值.Hours: 返回用小时计算的Time ...
- [转]uipath orchestrator installation
本文转自:https://dotnetbasic.com/2019/08/uipath-orchestrator-installation.html UiPath Orchestrator Insta ...
- 「SAP技术」A项目关联公司间退货STO流程
[SAP技术]A项目关联公司间退货STO流程 1)创建公司间退货STO单据. 如下图示的公司间退货STO 4500000572, 2),VL10B, 创建交货单. 如下图交货单号:80044918, ...
- Android 程序分析环境搭建-动态分析环境搭建
静态查看过app 的代码,但是有些app 非常复杂,页面好多,你根本找不到从何处下手.还有app 通过静态分析,发现有被加固(后续会讲如何砸壳),根本找不到,还有即便你搜索app界面上的文字,你也搜索 ...
- JSON.parse和JSON.stringify方法
1.JSON.parse(“要转换的数据”) 2.JSON.stringify(“要转化的数据”) 3.首先,两个方法的用法是有差别的: ①.JSON.stringify是从一个对象中解析出字符串 ② ...
- 31(2).密度聚类---Mean-Shift算法
Mean-Shift 是基于核密度估计的爬山算法,可以用于聚类.图像分割.跟踪等领域.
- 新入手的Mac,该如何设置?
如果您入手了一台Mac.设置Mac的过程直观且易于执行,但是如果您是新手,可能会遇到有一些小麻烦.没关系,本篇文章小编将帮助您设置Mac,让您像专业人士一样迅速运转您的Mac. 设置前提 在开始设置全 ...
- 【西北师大-2108Java】第十二次作业成绩汇总
[西北师大-2108Java]第十二次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第14周学习指导及要求 实验目的与要求 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本 ...
- python-参数化-(1)(手机号码)
一.生成手机号码,此处并没有写成类或者函数形式,上代码 import random #指定手机号码前三位格式,并随机返回一个区号,关于random参数化的相关部分自行了解type_mobile = [ ...
- 23.login1(SKCTF)
没有账号?注册一个试一试~ 题目提示用SQL约束攻击,那么什么是SQL约束攻击呢? 约束攻击的原理就是注册用户名为'admin '(有多个空格)的账号,密码'*******'(密码可以自定义,符 ...