更多博文请关注:听到微笑的博客

EL概述

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。

简单来说EL表达式就是让程序员,简化了代码的书写量。在学EL表达式之前我们必须通过<%=      %>来取出域中的数据,但这种方式        过于繁琐,所以就诞生了EL表达式。

EL取出JSP四大域对象中保存的数据

  • pageContext域:${pageScope.key};
  • request域:${requestScope.key};
  • session域:${sessionScope.key};
  • application域:${applicationScope.key};

EL从四个域中获得某个值

写法:${key};

例:如果在request域中存储了一个名为"productList"的对象,我们不需要通过${requestScope.productList}取出相应的对象,只需要${productList}即可取出相应的对象。

相当于pageContext.findAttribute()从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找.

JSTL概述

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标签库有5个子库,但随着发展,目前常使用的是他的核心库。

JSTL五大子库

Core (核心库)  标签库的URI:http://java.sun.com/jsp/jstl/core  常用前缀:c

I18N(国际化)   标签库的URI:http://java.sun.com/jsp/jstl/fmt 常用前缀:fmt

SQL                     标签库的URI:http://java.sun.com/jsp/jstl/sql  常用前缀:sql

XML                    标签库的URI:http://java.sun.com/jsp/jstl/xml 常用前缀:x

Functions            标签库的URI:http://java.sun.com/jsp/jstl/functions  常用前缀:fn

下载与导入

下载:Apache的网站下载JSTL的JAR包。进入“http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/”网址下载 JSTL的压缩包。jakarta-taglibs-standard-1.1.2.zip

导入:解压后在lib目录下可以看到两个JAR文件,分别为jstl.jar和standard.jar。其中,jstl.jar文件包含JSTL规范中定义的接口和相关类,standard.jar文件包含用于实现JSTL的.class文件以及JSTL中5个标签库描述符文件(TLD),将两个文件导入项目中。

JSTL核心库的使用

  • <c:if>标签

1. 语法格式:

<c:if  test="xxx"   [var="xxx"]   [scope="{page|request|session|application}"]  >

执行体

</c:if>

2. 标签属性讲解:

test属性:用于设置逻辑表达式,当逻辑表达式为true时执行执行体

var属性:用于指定逻辑表达式中变量的名字

scope属性:用于指定var变量的作用范围,默认值是page。

3.用法案例:

  • <c:forEach>标签

两种语法格式:

1.迭代集合对象:

<c:forEach items="xxx"   [var="xxx"]   [varStatus="xxx"]   [begin="xxx"]   [end="xxx"]   [step="xxx"]>
                                             循环体.....
                                </c:forEach>

2.迭代数组:

<c:forEach   begin="xxx"  end="xxx"   [var="xxx"]   [varStatus="xxx"]   [step="xxx"]>
                                              循环体....
                                 </c:forEach>

标签属性讲解:

1.items属性用于指定将要迭代的对象

2.var属性用于指  将当前迭代到的元素保存到page域中的名称(可以通过${xxx}获得对象)

3.varStatus属性用于指定当前迭代状态信息的对象保存到page域中的名称

varStatus属性可以获取以下信息:

count:表示元素在集合中的序号,从1开始

index:表示当前元素在集合中的索引,从0开始

first:表示当前是否为集合中的第一个元素

last:表示当前元素是否为集合中最后一个元素

4.begin属性用于指定从集合中的第几个元素开始迭代,begin的索引值从0开始

5.step属性用于指定迭代的步长,即迭代的增长因子

   用法案例:

迭代集合对象:

迭代数组元素:

总结

在前端JSP页面中会经常用到EL表达式,和JSTL标签库,EL表达式使得取出request域和其它域中数据变得极其方便,JSTL免去了<%=    %>的繁琐操作。我介绍的JSTL的两个标签是核心库中最常用的两个,它们两个标签可以解决大多数问题。当然JSTL标签库中的标签远不止这些,有兴趣的小伙伴可以深入了解。

下面是博主的其他文章,喜欢的博友们点个关注,谢谢您的支持。

Java8 Lambda表达式入门

Validate插件的自定义验证方法入门(结合Ajax实现用户名的数据库查重)

JSON转换工具的使用

EL表达式与JSTL简单入门的更多相关文章

  1. javaWeb el表达式和jstl快速入门案例

    <%@page import="de.bvb.domain.Person"%> <%@page import="de.bvb.domain.Addres ...

  2. (十)EL表达式和JSTL标签快速入门

    目录 什么是 el 表达式 示例:使用EL表达式获取pageContext .request.session.application域中的数据: 示例:使用EL表达式获取Bean属性 获取当前WEB应 ...

  3. [转]EL表达式和JSTL表达式实例

    /* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...

  4. Javaweb学习笔记6—EL表达式与JSTL及自定义标签

    今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...

  5. EL表达式和JSTL(三)——EL表达式

    在JSP的开发中,为了获取Servlet中存储的数据,通常需要很多的Java代码,这样的做法使的JSP页面非常混乱,为此,JSP2.0中提供了一种EL规范,是一种简单的数据访问语言. 1.初识EL E ...

  6. EL&Filter&Listener:EL表达式和JSTL,Servlet规范中的过滤器,Servlet规范中的监听器,观察着设计模式,监听器的使用,综合案例学生管理系统

    EL&Filter&Listener-授课 1 EL表达式和JSTL 1.1 EL表达式 1.1.1 EL表达式介绍 *** EL(Expression Language):表达式语言 ...

  7. 简述jsp之EL表达式和jstl及其使用

    Jsp的指令之include指令include指令:代表的是页面的包含. 作用:可以把一些jsp的页面包含在一起,对外展示. 页面的布局,现在已经不用了,现在都用css+div进行布局.include ...

  8. jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...

  9. EL表达式、JSTL

    EL表达式 一.简介 > JSP表达式 <%= %> 用于向页面中输出一个对象.        > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段.   ...

  10. EL表达式和JSTL

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

随机推荐

  1. jemter做参数化的几种方法

    第一种:使用用户参数:添加--前置处理器--用户参数

  2. java集合源码详解

    一 Collection接口 1.List 1.1ArrayList 特点 1.底层实现基于动态数组,数组特点根据下表查找元素速度所以查找速度较快.继承自接口  Collection ->Lis ...

  3. LLM应用实战:当KBQA集成LLM

    1. 背景 应项目需求,本qiang~这两周全身心投入了进去. 项目是关于一个博物馆知识图谱,上层做KBQA应用.实现要求是将传统KBQA中的部分模块,如NLU.指代消解.实体对齐等任务,完全由LLM ...

  4. 整理k8s————k8s概念[一]

    前言 简单整理一下k8s. 正文 k8s 是基于容器的一套解决方案,那么解决了什么问题呢? 解决了分布式部署问题. k8s 特点: 轻量 开源 弹性伸缩:IPVS 知识图谱: 更多的看官网就好. 结 ...

  5. 用fpga实现1G Eth TCP&UDP硬件协议栈

    用fpga实现的1G 以太网硬件协议栈,属于轻的协议栈

  6. React中的setState执行机制

    一.是什么 一个组件的显示形态可以由数据状态和外部参数所决定,而数据状态就是state 当需要修改里面的值的状态需要通过调用setState来改变,从而达到更新组件内部数据的作用 如下例子: impo ...

  7. asyncio async和await列表推导式实现异步高并发执行

    import asyncio import random import time # 需求:有一个crontab调度器,每隔1秒,拉起1个job,要求这些job可以并发爬取网页 async def c ...

  8. Faiss 向量库编译安装

    Faiss 是 Facebook 开源的一套高效相似性搜索以及向量聚类的开发库,支持各类相似性搜索的算法,Faiss 项目本身是使用 C++ 编写的,但是提供 Python 的绑定,可以直接使用 nu ...

  9. 力扣183(MySQL)-从不订购的客户(简单)

    题目: 某网站包含两个表,Customers 表和 Orders 表.编写一个 SQL 查询,找出所有从不订购任何东西的客户. Customers 表: Orders 表:  解题思路: 需要查询出没 ...

  10. 力扣387(java)-字符串中的第一个唯一字符(简单)

    题目: 给定一个字符串 s ,找到 它的第一个不重复的字符,并返回它的索引 .如果不存在,则返回 -1 . 示例 1: 输入: s = "leetcode"输出: 0示例 2: 输 ...