JSTL和EL简介
EL
Expression Language,表达式语言,通过操作存在于PageContext等的数据,实现JSP的编写更加简单,单纯使用EL不用引入jar包,只要容器支持即可。
EL的隐含对象
EL基本使用
${ld}相当于依次从pageScope-requestScope-sessionScope-applicationScope,查找ld的变量,如果有则返回其值,没有则返回null,当然如果确定变量位置,可以直接获取,例如${requestScope.ld}。除了上述隐含对象,EL把其它内容全部当做某个域中的变量。
EL语法
除此之外,EL还可以进行常见运算
- 算术运算符 +、-、*、/(或 div)和 %(或 mod)
- 关系运算符 ==(或eq)、!=(或ne)、<(或lt)、>(或gt)、<=(或le) 和 >=(或ge)
- 逻辑运算符 &&(或 and)、||(或or)和 !(或 not)
- 验证运算符 empty
EL获取属性解析
假设已经将user对象添加到requestScope中,现在要获取user对象的name属性:使用${user.name}取得的是user对象的name属性,获得属性的途径并非通过是定义的变量private String username,而是根据方法getName()去除get然后小写为name得到,所以修改username为username1对${user.name}的使用无影响。
EL获取复杂属性
使用EL获取user对象的group属性的name属性,可以使用${user.group.name};使用EL获取数组第二个参数可以为${array[1]},获取map中的k1可以为${map.k1}得到。
JSTL通常与EL配合使用。
JSTL
JSP Standard Tag Library,JSP标准标签库,是一个不断完善的开放源代码的JSP标签库,它的使用需要容器的支持,可以以优雅的标签方式代替JSP中的Java代码。JSTL相比EL可以提供更多可控细节。
配置使用
配置
使用JSTL需要引入jstl.jar和standard.jar两个包,JSP文件中添加标签
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Core
核心库提供了常用的out、set、remove、forEach等标签,使用实例:
- <c:choose >
- <c:when test="${v1 gt v2}" >
- v1大于v2
- </c:when>
- <c:otherwise>
- v1大于v2
- </c:otherwise>
- </c:choose>
Format
Format库提供了对格式的控制标签,例如:
- today(default):<fmt:formatDate value="${today}"/><br/>
- today(default):<fmt:formatDate value="${today}" type="date"/><br/>
- today(default):<fmt:formatDate value="${today}" type="time"/><br/>
- today(default):<fmt:formatDate value="${today}" type="both"/><br/>
- today(default):<fmt:formatDate value="${today}" type="both" dateStyle="full"/><br/>
- today(default):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss"/><br/>
可以得到:
总结
总的来说,通过JSTL和EL,可以减少JSP页面的编程工作,以标签的方式优化,通过JSTL和EL的功能显示,使得JSP职责更加单一,开发分工更加明确。
JSTL和EL简介的更多相关文章
- EL简介
一.EL简介 1.语法结构 ${expression}2.[]与.运算符 EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符 ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- JS中也可以使用JSTL和EL标签
//往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Pl ...
- JSTL和EL
JSTL和EL 1.EL表达式总是放在大括号里,而且前面有一个美元符前缀. person.name2.相似点:(1).都可以让我们在静态内蓉中插入动态信息.EL:室外温度是{emp}度 JSP:室外温 ...
- JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总
一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出. 1,JSTL标签总结: a).JSTL标签有什么用? JSTL是由JCP(Java Commu ...
- JSTL、EL、ONGL、Struts标签的区别与使用
一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以 ...
- <Chapter 2>2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)
现在,我们的时钟显示了UTC时区的时间.我们希望我们的应用可以让用户自定义时区,并且为将来的访问记住用户的偏好.为了做到这一点,我们使用Google帐户来识别哪个用户正在使用这个应用. 在我们深入了解 ...
- JSTL与EL之间的千丝万缕
一.关于JSTL和EL: 什么是JSTL? JSTL( JSP Standard Tag Library)是JSP标准 标签库,由apache实现. 什么是EL? EL(Expression Lang ...
- JSTL与EL常用标签(转)
JSTL与EL EL相关概念 JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程 ...
随机推荐
- dubbo源码分析02:服务引用
一.何时创建服务引用 引用官方文档的原话,如果将Dubbo托管在Spring-IOC容器下,Dubbo服务引用的时机有两个,第一个是在Spring容器调用ReferenceBean的afterProp ...
- 解析《Effective Java》之多个构造器、Javabeans模式和Builder模式
最近看<Effective Java>这本被很多同行称为神作的书,但是这本书很多地方缺少了举例不好懂,下面是关于我对书上知识的理解. 一.<Effective Java>中文版 ...
- 基于 Roslyn 实现动态编译
基于 Roslyn 实现动态编译 Intro 之前做的一个数据库小工具可以支持根据 Model 代码文件生成创建表的 sql 语句,原来是基于 CodeDom 实现的,最近改成使用基于 Roslyn ...
- 系统学习 Java IO (三)----文件类 File
目录:系统学习 Java IO---- 目录,概览 Java IO API 中的 File 类可以访问基础文件系统. 使用 File 类,可以: 检查文件或目录是否存在. 如果目录不存在,创建一个目录 ...
- java获取系统类型与版本
System的properties中有很多系统属性: System.out.println(System.getProperty("os.name")); System.out.p ...
- Spring事物管理简介 (转)
一.事物1.什么是事物 事物指的是逻辑上的一组操作,这组操作要么全部成功,要么全部失败 2.事物的特性 原子性:事物是一个不可分割的工作单位,事物中的操作要么都发生,要么都不发生 一致性:事物前后数据 ...
- Null作为参数的时候,Java编译器如何调用函数?
public class TestNull { public void method(Object o){ System.out.println("Object Version") ...
- Spring Bean 生命周期之“我从哪里来?” 懂得这个很重要
Spring bean 的生命周期很容易理解.实例化 bean 时,可能需要执行一些初始化以使其进入可用 (Ready for Use)状态.类似地,当不再需要 bean 并将其从容器中移除时,可能需 ...
- Docker启动一个Centos镜像,在docker中安装ifconfig和ssh
执行docker search centos 现在最流行的Linux嘛.查了下,排名第一的(STARS最多1882)官方版,就是你了 果断拿下, docker pull centos,看网速了静等拿下 ...
- python 查询 elasticsearch 常用方法(Query DSL)
1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsearch(["localhost:9200"]) 2. ...