初识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、JSTL_第1张图片

指定对象的查找范围
初识EL、JSTL_第2张图片

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

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

例:
初识EL、JSTL_第3张图片

五、什么是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标签
初识EL、JSTL_第4张图片

核心标签-choose标签
初识EL、JSTL_第5张图片

核心标签-forEach标签
初识EL、JSTL_第6张图片
- index 返回正在被迭代的对象的下标,下标从0开始
- count返回是第几次迭代,从1开始

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

补充:
JSTL应用
初识EL、JSTL_第7张图片

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

你可能感兴趣的:(jsp,EL,标签,jstl)