美文网首页
EL表达式与JSTL

EL表达式与JSTL

作者: 一叶障目 | 来源:发表于2019-12-07 12:35 被阅读0次

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。

JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。

JSTL

安装

要使用jstl需要导入对应的库,可以去官方站点下载, [图片上传失败...(image-a93d42-1575693285085)]

然后解压文件将得到的jar包放入到WEB-INF的lib中

导入之后,在要使用它的jsp文件中使用taglib 导入库

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

prefix 是标签的前缀,类似于命名空间,在使用库中的标签时需要加上这个前缀

常用标签

if 标签

if标签用来做判断,当条件成立时,执行标签体的内容,条件写在test属性中,注意:只有if标签而没有对应的else标签。下面是一个例子:

<c:if test="${not empty requestScope.error}">
    <div style="color:red;width:100%;" align = "center">${requestScope.error}</div>
</c:if>

上述这个例子表示,当服务器返回错误信息时,将错误信息显示到页面上

choose 标签

choose 标签相当于switch 语句,该标签中可以包含 when 和 otherwise 作为字标签,相当于switch语句中的case和default,例如下面的例子

<p>当前薪水为 : <c:out value="${salary}"/></p>
<c:choose>
    <c:when test="${salary <= 2000}">
       老板我是你爹, 这个工作谁爱干谁干
    </c:when>
    <c:when test="${salary > 50000}">
       公司是我家,工作就是我的价值,我热爱工作
    </c:when>
    <c:otherwise>
        心中无半点波澜,甚至想提前下班
    </c:otherwise>
</c:choose>

foreach 标签

foreach 用来迭代容器中的元素,或者完成一些重复的操作。

当使用foreach标签来进行重复性的操作时可以使用begin、end、var来控制循环,begin表示循环变量开始的值,end表示循环变量结束的值,与正常的for循环不同,循环变量的值可以等于end的值;使用var标签来定义循环变量的名称,使用step表示步进。例如:

<c:foreach begin = "1" end = "10" var = "i step = "1">
${i} <br />
</c:foreach>

等价于

for(int i = 1; i <= 10; i++){
    System.out.println(i);
}

当使用 foreach来迭代容器时使用item和 var来迭代,其中item为需要迭代的容器,var表示获取到的容器中的元素。例如

<c:foreach items = "list" var = "l">
    ${l}
</c:foreach>

等价于

for(String l:list){
    System.out.println(l);
}

EL

EL 表达式:Expression Language 表达式语言,用于替换和简化jsp页面中java代码的编写。EL 表达式使用 ${} 来表示

jsp 默认支持el表达式,在page指令中可以使用 isELIgnored 来指定是否忽略jsp页面中的el表达式;当然也可以使用 \ 来作为转义符,表示 这个el表达式原样输出,例如 \${cookie}

EL表达式中可以支持算数运算符、比较运算符、逻辑运算符合empty 空运算符;empty用于判断字符串、集合、数组对象是否为null或者长度为0。

在使用el表达式时需要注意以下几点:

  1. el表达式只能从域对象中获取值
  2. el表达式中如果是类对象,可以根据Java Bean规范来获取属性值
  3. 针对list这种有序集合可以使用 ${域对象.键名[索引].属性}
  4. 针对Map集合,使用 ${域对象.键名.key名}或者 ${域对象.键名["key名"]}
  5. el 表达式中对域对象都做了重命名,pageScope 对应于 pageContext、requestScope对应于request、sessionScope对应于session、applicationScope对应于applicate(ServletContext)
  6. 表达式${键名} 依次从最小的域中去查找对应的键值,直到找到为止
    <hr />

相关文章

  • 前端表达式

    EL与JSTL表达式 EL介绍 什么是EL 表达式语言 EL的功能 替代JSP页面中数据访问时的复杂编码 EL特点...

  • JSP EL&JSTL

    JSP: EL表达式 JSTL

  • 大连滕泰科技学习笔2020-04-23

    1,El表达式initParam参数的使用 2,EL表达式存在的问题? 3,什么JSTL 3,1 JSTL环境搭建...

  • jstl标签库

    一、jstl标签库 jstl是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言。js...

  • java设计

    1什么是JSTLJSTL是apache对EL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言!JSTL...

  • ERP如何集成jstl与开启EL表达式

    ERP如何集成jstl与开启EL表达式 返回首页 一、下载jar包 jstl-1.2.jar standard-1...

  • day07

    EL表达式&JSTL EL表达式的学习路线:1 EL表达式的由来2 使用EL获取web四个容器(page、re...

  • 第 03 章 JSTL与Servlet

    第 03 章 JSTL与Servlet 学习目标: 掌握EL表达式的应用 掌握常用的JSTL标签库应用 掌握Ser...

  • JavaEE-JSP基础-EL表达式和JSTL标签库(Tagli

    EL表达式和JSTL标签库: 在JSP页面代替java代码,便于编写 一.EL表达式 1.EL内置对象 2.EL语...

  • EL&JSTL&MVC

    EL&JSTL&MVC EL表达式 概念 表达式语言 目的 获取作用域中的共享数据 语法 ${属性名称} --->...

网友评论

      本文标题:EL表达式与JSTL

      本文链接:https://www.haomeiwen.com/subject/ulhugctx.html