初识EL、JSTL

JSP 中嵌套的大量Java代码增加了页面内哦让的复杂度,使得页面不够简洁,不方便代码的维护。为此,如果我们用标准标签库(JSTL),配合EL表达式,就会减轻JSP文件的复杂度,方便维护。

以下是本文的目录大纲:
一、什么是EL表达式
二、EL表达式的作用
三、使用EL表达式访问Bean属性
四、使用EL表达式进行运算
五、什么是JSTL
六、如何使用JSTL
七、如何开发自定义标签

若有不正之处,请批评指正,不胜感激。
若转载请标明原文链接:
初识EL、JSTL


一、什么是EL表达式

  • EL(Expression Language)表达式是一套简单的计算规则,用于给JSP标签的属性赋值,也可以直接用来输出。
  • 表达式也可以脱离标签单独使用。

二、EL表达式的作用
EL表达式的作用可分为以下几类:
- 访问Bean的属性
- 输出简单的运算结果
- 获取请求参数值

三、使用EL表达式访问Bean属性
通常情况下的JavaBean指的是一个公共的类,含有一个空参的构造方法,一些属性以及访问这些属性提供的get/set方法,方法名与属性名需要符合一定的规范。
使用EL表达式访问Bean属性时可使用如下两种方式:
- 方式一: .: {对象名[“属性名”]}

方式一:${对象名.属性名}
如:${user.name}
- 执行过程:容器会依次从pageContext, request, session, application
中查找绑定名称为”user”的对象。找到后,调用“getName”方法,然后输出。
- 等价代码如下:

{%
User user = (User)request.setAttribute(“user”);
out.print(user.getName());
%}

上述代码存在的问题:
- 如果request中没有user对象,会报500错误;
- 没有为name属性赋过值,页面会打印出”null”字样
- 取值时绑定名写错,会报空指针500的异常

而使用EL表达式,可避免上述的问题,
- 如果没有为name属性赋值,页面输出空白,不会出现“null”的字样
- 如果区知识绑定名写错,页面输出空白,不会报空指针异常

注意:属性名不能写错,否则报错

方式二 : ${对象名[“属性名”]}
- 方括号中的属性名可以使用单引号或双引号

-此种方式允许[]中出现绑定名,还可以允许[]中出现从0开始的下标,用于访问数组中的某个元素的值。

如:
这里写图片描述

指定对象的查找范围
这里写图片描述

四、使用EL表达式进行运算
EL表达式可以做一些简单的计算,可将结果直接输出或给JSP标签的属性赋值

  1. 算术运算符有五个:+、-、*或$、/或div、%或mod
  2. 关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge
  3. 逻辑运算符有三个:&&或and、||或or、!或not
  4. 其它运算符有三个:Empty运算符、条件运算符、()运算符

例:
这里写图片描述

五、什么是JSTL
JSTL(JSP Standard Tag Library)JSP标准标签库

六、如何使用JSTL
step1,将JSTL标签对应的jar文件拷贝到WEB-INF/lib目录下
step2,使用taglib指令导入要使用的JSP标签

<%@ taglib uri=”” prefix= “” %>
uri: JSP标签的命名空间
prefix: 命名空间的前缀

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

介绍JSTL的三个主要的核心标签:

核心标签-if标签
这里写图片描述

核心标签-choose标签
这里写图片描述

核心标签-forEach标签
这里写图片描述
- index 返回正在被迭代的对象的下标,下标从0开始
- count返回是第几次迭代,从1开始

七、如何开发自定义标签
step1,编写Java类,继承SimpleTagSupport类;
step2,在doTag方法中添加处理逻辑;
step3,配置标签说明文件

补充:
JSTL应用
这里写图片描述

如果有哪位朋友有补充的内容,欢迎下方留言,不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值