【JSP】EL表达式和JSTL

目录

1. EL表达式

2. EL表达式的功能

3. EL表达式的运算符

4. EL表达式访问作用域变量

5. EL的隐含变量

6. JSTL

6.1 通用目的标签

6.2 条件控制标签

6.3 循环控制标签


1. EL表达式

        EL表达式是用来替换jsp页面中的脚本语句的语法(知识脚本语句不包括指令和行为)。通过使用EL表达式,可以实现对变量的快速访问等。EL表达式的语法格式为:${EL表达式语句}。

2. EL表达式的功能

        使用EL表达式可以实现以下功能:

  1. 对作用域对象的方便访问。
  2. 对Javabean对象的方便访问。
  3. 对集合元素的方便访问。
  4. 对请求参数和cookie等请求参数的方便访问。
  5. 在EL表达式中使用java函数的功能。

3. EL表达式的运算符

        EL表达式提供了其自身的运算符。算术运算符和逻辑运算符与java语法相同,不做讲解。其提供的条件运算符就是java中的三元运算符:表达式1?表达式2:表达式3   如果表达式1为true则返回表达式2的结果,如果表达式1为false则返回表达式3的结果。

        EL表达式还提供了empty 运算符,其语法格式为:${empty 变量}。用来判断变量的值是否为空。

        通过使用“.”运算符可以访问对象的成员和map、list集合中的元素。通过使用[]运算符可以实现对成员、map、list、数组元素的访问。

4. EL表达式访问作用域变量

        可以直接使用${属性名}来获取作用域中的变量。上述是没有指定作用域的,其将从page作用域到request一直到application作用域进行查找,查找到了就停止否则一直查找,直到找不到报错。如果需要指定作用域范围,需要使用EL自带的隐藏对象xxxScope来进行访问,其语法格式为:${xxxScope.属性名}

5. EL的隐含变量

        EL中一共有11个隐含变量,分别为:

  1. pageContext:与jsp中的pageContext对象相对应。
  2. param:用来获取请求对象中的参数。
  3. paramValues:用来获取请求对象中的参数数组。
  4. header:用来获取请求对象中的请求头参数。
  5. headerValues:用来获取请求对象请求头的参数数组。
  6. initParam:用来获取Servlet的初始化参数。(也就是<context-param>中的数据。)
  7. cookie:用来获取cookie中的数据。
  8. xxxScope:获取指定请求作用域中的数据。

        pageContext:可以用其的request属性获取request中的属性,但是,由于EL表达式中不能使用对象的方法,所以不能使用pageContext.request.getMethod()语句。

        param和paramValues的用法格式为:${param.name},${paramValues.name[i]}。相当于调用request.getParamter(String name)来获取请求参数的值。

        initParam和header、headerValues直接在后面“.”上需要查询的属性名就可以获取相对应的属性值。

        cookie有两种使用方法:${cookie.参数名.value},用来获取参数名对应的cookie参数值;${cookie.JSESSION.value},用来获取cookie的id值。

6. JSTL

        虽然EL表达式可以很方便的访问变量,但是由于其不能调用变量的方法和有很多功能实现比较麻烦,为此可以使用JSTL来实现。JSTL就是jsp页面中的一个标签库,通过使用这个标签库可以简化很多步骤,使页面变得更简洁。

        JSTL中的标签格式都是:<c:xxx>。标签分为通用目的标签、条件控制标签和循环控制标签。

6.1 通用目的标签

        通用目的标签有4个,分别为out、set、remove和catch。

  1. out标签:out标签用来向页面输出值。有两种格式:①<c:out value="要输出的值" escapeXml="true|false" default="默认值">,这里将会输出value中的值;escapeXml如果为true会将输出的值中的特殊字符转换成对应的转义字符;如果要输出的值为空,则会输出默认值。②<c:out value="要输出的值" escapeXml="true|false">defalut 默认值</c:out>。作用同上。
  2. set标签:用来向作用域中设置值。格式:①<c:set var="varName" value="设置值" scope="page|request...|application">。var为变量保存时的名;value为要保存的值;scope为作用域的范围。②<c:set var="varName" scope=".....">body</c:set>和上面一样,不过保存的值为标签内的值。
  3. remove标签:用来删除作用域中的值。格式<c:remove var="varName" scope="...">
  4. catch标签:用来捕获标签中的异常(就是try-catch)。格式:<c:catch var="varName">body</c:catch>

6.2 条件控制标签

        条件控制标签有4个,分别为if、choose、when、other。

        if标签就是java中的if语句;choose,when,other就是java中的switch-case-default。

  1. if标签格式:①<c:if test="表达式" var="varName" scope="page....">。如果为true会将结果保存到varName中。②<c:if test="表达式"var="varName" scope="page...">body</c:if>。为true还会执行body中的内容。
  2. choose标签格式:<c:choose><c:when>body</c:when>....<c:other>body</c:other>

6.3 循环控制标签

        这里只介绍foreach标签。

  1. 格式一:对于数字使用var [begin,end,step]。<c:foreach var="varName" begin="" end="" step="">body</c:foreach>。varName为一个变量名,begin为开始的数字,end为结束的数字,step为步长。
  2. 格式二:对于集合等对象使用var item。<c:foreach var="varName" item="集合元素">body</foreach>。此时就是java的foreach增强for循环。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaWeb 中,使用 EL 表达式和 JSTL 可以实现在 JSP 页面中进行动态数据处理和展示。下面我来分别介绍这两种技术的实现方法。 1. EL 表达式的实现 EL 表达式是一种用于在 JSP 页面中访问 JavaBean 中属性的语言。在 JSP 页面中,我们可以通过 ${} 语法来使用 EL 表达式。例如,我们可以通过 ${user.name} 来获取 JavaBean 中的 name 属性的值。 要在 JavaWeb 中使用 EL 表达式,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JavaBean 中定义属性,并提供 getter 和 setter 方法。 4) 在 JSP 页面中使用 EL 表达式来访问 JavaBean 的属性值。例如:${user.name}。 2. JSTL 的实现 JSTL 是一组 JSP 自定义标签,用于在 JSP 页面中进行动态数据处理和展示。JSTL 提供了一些常用的标签库,例如 core、fmt、sql、xml 和 functions 等。 要在 JavaWeb 中使用 JSTL,我们需要完成以下步骤: 1) 在 JSP 页面中引入 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>,指定页面编码为 UTF-8。 2) 在 JSP 页面中引入 JSTL 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>。 3) 在 JSP 页面中使用 JSTL 标签库提供的标签来进行动态数据处理和展示。例如,使用 <c:forEach> 标签来遍历一个集合: ``` <c:forEach var="item" items="${list}"> ${item} </c:forEach> ``` 这样就可以在 JSP 页面中使用 EL 表达式和 JSTL 来进行动态数据处理和展示了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值