EL表达式jstl标签库

1:EL

1:el介绍

在jsp嵌入大量的java代码,这样java代码和html标签就在一个页面了,导致jsp页面维护成本非高。

后期开发的时候,我们经常会使用Servlet处理业务逻辑,然后把处理后的数据转发到jsp页面上,最终在jsp页面把处理后的结果显示出来即可。

在开发中:

使用Servlet程序接收用户的请求并处理数据,jsp页面仅仅只是显示数据,jsp页面中不写java代码。

要在jsp页面获取不同域中存放的数据,在jsp页面上还是需要嵌入Java代码。

怎么处理 ?

Sun公司也意识到了这个问题,于是伟大的EL表达式诞生了;

 

2:el是什么

 

EL:expression language: 表达式语言,一般称它为EL表达式

它的主要功能就是从不同的域中取出数据,执行某个运算,判断等业务逻辑。

格式为:${ key} = request.getAttribute(“key”) , key就是在域对象中存储数据时的 key 值,request.setAttribute(key,value)

注意:如果域中不存在某个key值的话,EL取出来的是一个空字符串

 

3:EL的使用

EL表达式语句在四个域对象中执行查询时,用key为关键字,

分别从page、request、session、application四个域中查找相应的对象,如果取到值就返回对应的value,如果没有则返回空字符串 “” ,不是null

从page开始找,找到就返回,找不到就返回空字符串

先从page里面找,如果找到就立即返回显示,如果没有找到就会去request中找,找到返回,没有找到就去session中找,找到返回,没有找到去servletContext中如果找到返回,如果没有,就返回“”;

4:EL表达式获取javabean - 简单的java对象,user,emp , stu 对象的数据

5:EL表达式获取复杂数据

获取集合,map的值

 

 

 

 

 

 

 

 

6:EL表达式执行运算

1:四则运算

2:比较运算

3:判断对象是否为空

 

7:EL的11个内置对象使用

pageContext             就是jsp中的pageContext

pageScope               jsp中的内置对象page

requestScope            jsp中的内置对象request

sessionScope              jsp中的内置对象session

applicationScope        jsp中的内置对象ServletContext

page ,request ,session ,application  类似于一个map集合,在el表达式中直接使用这个4个内置对象,然后  .  上key,就能够从不同的范围中取出数据。

如果不知道在那个范围,就直接书写key值。

param                  是获取用户请求参数中的携带的数据,类似于request中的getParameter方法

paramValues              是获取用户请求参数中的携带的数据,类似于request中的getParameterValues方法  用于获取复选框中的数据

header                 获取请求头中的信息,根据指定的头获取 referer

headerValues             根据某个头获取头对应的多个value值

cookie                  直接获取cookie对象

initParam                   获取初始化配置的参数

 

 

EL表达式可以在jsp页面简化我们的Java代码,甚至可以不用书写Java代码。但是EL结构简单,不能完成更加复杂的业务逻辑,以及不能完成在页面的循环判断等功能。

Html 标签也不能完成咱们的逻辑处理

Java代码可以完成逻辑处理,但是规定了呢,jsp只做显示,不能写Java代码

如果要在jsp页面做逻辑处理怎么办呢 ?

Sun公司也意识到这个问题,于是又诞生了JSTL

2:jstl

Jstl : JSP Standard Tag Library : JSP标准标签库

JSTL标签库的使用主要是为弥补html标签的不足和jsp页面处理逻辑的缺陷

在使用jstl之前需要将jsp的包导入,然后引入标签库<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Prefix - 前缀

 

 

1:jstl 标签库分类

core 核心标签库 (使用的最多)

fmt 完成国际化的 (很少使用)

functions jstl中的函数库 (基本不用)

sql 主要是在jsp页面上操作数据库 (基本不用)

xml 操作xml文件的(基本不用)

2:使用说明

JSTL的核心标签库标签共14个,使用这些标签能够完成JSP页面的基本功能,减少编码工作。

Jstl 的标签一般都会和EL表达式一起使用

c:out  value=””  输出语句 有个default 属性,如果value为空,则输出默认

c:set  var="" value="" scope="" 给域对象设置值,scope可以省略,默认在本页有效

c:remove  var="" scope="" 删除域对象中的某个值,scope可以省略

c:catch  捕获异常,不会使用

c:forTokens  items="" delims="" 使用指定的分隔符切割字符串

c:import  url="" 在当前页面上引入其他的页面内容 类似于 前面学习的jsp:include,注意不是导入

c:redirect   重定向

c:url  在页面上可以显示超链接等信息,完成页面的跳转

c:choose标签,c:when标签,c:otherwise标签,类似于switch

用的比较多的是:c:if标签,c:forEach标签

一般和el一起使用

 

   

 

posted @ 2022-02-12 23:05  这题我不会  阅读(68)  评论(0)    收藏  举报