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文件中添加标签

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c" %>

Core

核心库提供了常用的out、set、remove、forEach等标签,使用实例:

  1. <c:choose >
  2. <c:when test="${v1 gt v2}" >
  3. v1大于v2
  4. </c:when>
  5. <c:otherwise>
  6. v1大于v2
  7. </c:otherwise>
  8. </c:choose>

Format

Format库提供了对格式的控制标签,例如:

  1. today(default):<fmt:formatDate value="${today}"/><br/>
  2. today(default):<fmt:formatDate value="${today}" type="date"/><br/>
  3. today(default):<fmt:formatDate value="${today}" type="time"/><br/>
  4. today(default):<fmt:formatDate value="${today}" type="both"/><br/>
  5. today(default):<fmt:formatDate value="${today}" type="both" dateStyle="full"/><br/>
  6. today(default):<fmt:formatDate value="${today}" pattern="yyyy/MM/dd HH:mm:ss"/><br/>

可以得到:

总结

总的来说,通过JSTL和EL,可以减少JSP页面的编程工作,以标签的方式优化,通过JSTL和EL的功能显示,使得JSP职责更加单一,开发分工更加明确。

JSTL和EL简介的更多相关文章

  1. EL简介

    一.EL简介 1.语法结构    ${expression}2.[]与.运算符    EL 提供.和[]两种运算符来存取数据.    当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符 ...

  2. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  3. JS中也可以使用JSTL和EL标签

    //往上滑是调用分页 function Ajax(currPage, pageSize) { // ajax后台交互String currPage,String pageSize var el, Pl ...

  4. JSTL和EL

    JSTL和EL 1.EL表达式总是放在大括号里,而且前面有一个美元符前缀. person.name2.相似点:(1).都可以让我们在静态内蓉中插入动态信息.EL:室外温度是{emp}度 JSP:室外温 ...

  5. JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总

    一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Commu ...

  6. JSTL、EL、ONGL、Struts标签的区别与使用

     一.JSTL 来源 我们使用JSP开发信息展现非常方便,也可嵌入java代码用来实现相关逻辑,但同样带来了很多问题: jsp维护难度增加 出事提示不明确,不容易提示 分工不明确等 解决上面的问题可以 ...

  7. <Chapter 2>2-2-2-1.介绍JSPs,JSTL,和EL(Introducing JSPs, JSTL, and EL)

    现在,我们的时钟显示了UTC时区的时间.我们希望我们的应用可以让用户自定义时区,并且为将来的访问记住用户的偏好.为了做到这一点,我们使用Google帐户来识别哪个用户正在使用这个应用. 在我们深入了解 ...

  8. JSTL与EL之间的千丝万缕

    一.关于JSTL和EL: 什么是JSTL? JSTL( JSP Standard Tag Library)是JSP标准 标签库,由apache实现. 什么是EL? EL(Expression Lang ...

  9. JSTL与EL常用标签(转)

    JSTL与EL EL相关概念 JSTL一般要配合EL表达式一起使用,来实现在jsp中不出现java代码段.所以我们先来学习EL表达式 EL主要用于查找作用域中的数据,然后对它们执行简单操作:它不是编程 ...

随机推荐

  1. python读取json文件并解析

    # -*- coding: utf-8 -*- import os import json import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  2. spring boot热部署devtools

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...

  3. 记录一次关于Cookie、Json中文乱码的解决方法

    今天工作上遇到一个问题,需要把一个对象集合List<Model>存入一个Cookie,按照原来都封装方法存入都ok,但是到取值都时候中文会变成乱码. 首先,我们可以确认Json和Cooki ...

  4. maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar

    maven中央库中查找ojdbc14 ,复制依赖,maven项目中引入ojdbc14 来回折腾,加仓库镜像,各种修改setting.xml 文件 就是不行,后来看到一位网友博客,MMP Oracle ...

  5. 微信jssdk支付坑

    1.使用easywechat开发的时候,由于没有注意,配置文件中默认的请求地址是 https://api.weixin.qq.com/结果调试了半天,一直报错“40066” 这也是怪自己粗心,结果去分 ...

  6. zabbix报警信息设置

    报警信息 默认标题: 服务器监控报警 告警主机:{HOST.NAME} 主机IP: {HOST.IP} 告警级别:{TRIGGER.SEVERITY} 告警信息:{TRIGGER.NAME} 问题详情 ...

  7. 音频算法speex中的aec分析以及解析

    算法原理: Speex的AEC是以NLMS(Normalized Least Mean Square)为基础,用MDF(multidelay block frequency domain)频域实现,最 ...

  8. select自定义下拉三角符号,css样式小细节

    本来没有写文章的习惯,但是闲下来了,整理资料,发现还挺纠结,对前端来说.所以整理下,希望对看到的人有所帮助,毕竟我不是前端开发. 起因,是前端告诉我select 框的三角箭头不能自定义.但是第二次的时 ...

  9. 简单说一下SS的原理

    假设有主机A和B还有C.主机A是客户机,就是你的电脑,主机B是服务器,也就是位于日本的那台电脑.主机C是你需要访问的网站.在没有SS的情况下,数据传输的流程是:A-->C.在有SS的情况下,概括 ...

  10. Java设计模式学习笔记(四) 抽象工厂模式

    前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找设计模式学习笔记汇总地址 1. 抽象工厂模式概述 工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问 ...