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 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- java 网站源码 在线编辑模版 代码编辑器 兼容手机平板PC freemaker 静态引擎
前台: 支持四套模版, 可以在后台切换 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站后台采用freemaker静态化模版引擎生成html 2.因为是生成的html,所以 ...
- Elasticsearch实现复合查询,高亮结果等技巧
一.Es的配置 实现es的全文检索功能的第一步,首先从与es进行连接开始,这里我使用的是es的5.x java api语法. public TransportClient esClient() thr ...
- css里的背景属性有哪些,如何去使用哪些属性
分类:纯色背景 背景图像 1.背景颜色 background-color : 任意合法的颜色 和 transparent 2.背景图像 background-image : url(想要加载的图 ...
- Android WebView与H5联调技巧
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/78 背景: 突然想写一篇关于Android WebView ...
- Oracle DB Time
Oracle DB Time是Oracle数据库在时间维度上剖析性能的一个重要指标,通过逐级分解该指标,定位到浪费资源或者资源争用的首要事件上,从而通过减少等待以及最小化每个请求的使用资源来达到优化的 ...
- No package gcc48-c++ available
yum install gcc48-c++ linux 下编译安装 rocksdb,发现没有这个 gcc48-c++,感觉这个48 应该是版本号,于是在 yum install gcc-c++,安装成 ...
- 31(2).密度聚类---Mean-Shift算法
Mean-Shift 是基于核密度估计的爬山算法,可以用于聚类.图像分割.跟踪等领域.
- 20182320《Program Design and Data Structures》Learning Summary Week9
20182320<Program Design and Data Structures>Learning Summary Week9 1.Summary of Textbook's Con ...
- 获取IP的三种方法
第一种 取本主机ip地址 public string GetLocalIp() { ///获取本地的IP地址 string AddressIP = string.Empty; foreach (IPA ...
- RabbitMQ几个常用面试题
以下观点,仅为个人理解的总结,如有错漏,欢迎指正! -------------------------------------------------------------------------- ...