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 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- C# get folder's Md5 generated by file's and filename's md5. get dictionary md5
C# get dictionary md5 static string GetDicMD5(string dirFullName) { logBuilder = new StringBuilder() ...
- Eclipse与IDEA配置tomcat
在eclipse中配置tomcat 打开servers窗口点击新建服务器 选择apache下对应版本,填写服务器名(自定义) 点击browse指定tomcat解压路径,点击finish 在server ...
- Java_JDBC 连接
今天,接着上一篇( mysql 数据库 )的基础上,我就写一下 Java 怎样连接数据库,并且操作数据库. 首先,我们先来准备一下数据库连接的驱动: mysql 的 jar 包下载地址:https:/ ...
- ELK日志分析系统(2)-logspout收集容器日志
1. 概述 安装了ELK之后,就是要考虑怎么获取log数据了. 收集log数据的方式有很多种: 1). beats采集数据发布到logstash 2). Filebeat采集数据发布到logstash ...
- 你必须知道的Dockerfile
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Dockerfile 在Docker中创建镜像最常用的方式,就是使用D ...
- ubuntu18.04 安装 QQ
参照大佬文章https://www.lulinux.com/archives/1319 我将安装过程需要的命令行总结出来,便于直接快速安装. # 安装 wine git clone https://g ...
- 用户APC的执行过程
Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html 用户APC的执行过程 一.一个启发式问题 有一个问题,线程什么时候 ...
- 【TencentOS tiny】深度源码分析(5)——信号量
信号量 信号量(sem)在操作系统中是一种实现系统中任务与任务.任务与中断间同步或者临界资源互斥保护的机制.在多任务系统中,各任务之间常需要同步或互斥,信号量就可以为用户提供这方面的支持. 抽象来说, ...
- openstack 搭建
#所有节点修改ip,主机名和hosts解析 controller 10.0.0.11 controller compute1 10.0.0.31 compute1 #所有节点准备本地repo源 rm ...
- jquery实现get的异步请求
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...