目录


什么是 el 表达式

EL表达式 用于获取数据;

JSP 页面中可以使用 ${标识符} 的形式,通知 JSP引擎 调用 pageContext.findAttribute() 方法,标识符关键字从各个域对象中获取对象。 如果域对象中不存在 标识符 所对应的对象,则返回结果为""(空串),注意不是null

返回 空串 而不是 null,是el表达式的一个迷人之处,我们可不希望在页面上显示null吧;它做了一个转换,因为pageContext.findAttribute() 方法,查不到对象,返回的是null

el表达式 可以理解为是对pageContext.findAttribute() 方法的封装 ;


示例:使用EL表达式获取pageContextrequestsessionapplication域中的数据;

<%--模拟从四个域中,用el表达式取数据--%>
<%--java 代码必须写在脚本片段里面--%> <%
// 先分别将数据存进四个域中
// 以键值对的形式向域中添加数据
// pageContext 域中存数据的时候,关键字不能用 pageContext,
// 因为pageContext 是el表达式自己定义的一个隐式对象,这个在后面的博客(el表达式详细介绍里面)会讲到;
pageContext.setAttribute("page", "我是pageContext中的数据");
request.setAttribute("request", "我是request中的数据");
session.setAttribute("session", "我是session中的数据");
application.setAttribute("servletContext", "我是servletContext中的数据");
%> // 在同一个JSP页面中,使用el表达式取值 <%--el表达式,必须直接写在Jsp页面中,不能写在脚本片段里面--%>
${page}
<br>
${request}
<br>
${session}
<br>
${servletContext}
<br> ------------------------------------------------------
// output:
// 我是pageContext中的数据
// 我是request中的数据
// 我是session中的数据
// 我是servletContext中的数据

示例:使用EL表达式获取Bean属性

首先要知道 Javabean属性这里说的属性可不是 Javabean 类的字段,而是 Javabean 类获取字段的 setXXXgetXXX 方法 ;

EL表达式 中可以使用${标识符.字段} 的形式直接访问 JavaBean对象的属性,不需要再去调用方法。

<%--先往request域里面,放进去一个对象--%>
<jsp:useBean id="person" class="day09.Person" scope="request" ></jsp:useBean>
<%--为对象的字段 赋值--%>
<jsp:setProperty name="person" property="age" value="22"></jsp:setProperty>
<jsp:setProperty name="person" property="name" value="狗蛋"></jsp:setProperty> <%--用el表达式取值--%>
${person.name} : ${person.age} ------------------------
// output:
// 狗蛋 : 22

获取当前WEB应用的名称

${pageContext.request.contextPath}

获取到的地址,自带斜杠,千万不要再地址前面再加 /


el表达式小结

上面只是个 入门级el表达式 教程 ;

千万不要以为 el表达式 只有这么点东西;el表达式 还是很有 、东西的

关于 el表达式 的详细介绍,请查看博主博客 el 表达式详细介绍 (可点击)

EL表达式也可以使用类如${1==1}的形式进行简单的逻辑判断;

一般用EL表达式取数据,通常用 . 号,当 . 号取不出来的时候,就用[ ]取数据;

例如,在取map中的数据的时候,键是数字的时候,.号就取不出来了,这时候该用[‘11’] 这样取 ;


JSTL标签库

JSTLSun 公司开发的一套标签库,使用 JSTL 可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。(这是标签库出现的目的,也符合 jsp 的规范,页面中不出现一句 java 代码)


如何使用JSTL标签库

在页面中使用JSTL标签需要完成以下2个步骤:

  1. 导入jstl.jarstanderd.jar这两个 JSTLjar 文件
  2. JSP 页面中使用<%@tablib url ="xxxx" prifix="xxx" %>元素导入标签库。
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>

JSTL标签库中常用标签

<c:foreach var="" item="">
<c:if test="">

  • <c:foreach var="" item=""> 标签事例
// 创建一个list,并向其中添加数据
<%
List<Person> list = new ArrayList<>();
list.add(new Person("小明"));
list.add(new Person("小强"));
list.add(new Person("狗蛋"));
request.setAttribute("list", list);
%> // 遍历list 取值
<c:forEach var="person" items="${list}">
${person.name} <br>
</c:forEach>

<c:foreach > 标签,items属性的值,是一个el表达式,它表示从哪一个对象中遍历取值; var属性的值,是暂时保存每次的取值 ;

在使用 foreach 标签进行迭代 Map 集合的时候,迭代的是 Map 集合进行entrySet返回 set<Map.entry> 集合


  • <c:if test=""> 标签事例
<c:if test="${1==2}">
<%
out.write("你看不到我的");
%>
</c:if>

<c:if > 标签中必须要有 test 属性,<c:if > 标签体的内容是否得到执行,取决于 test 属性中的表达式的值,为真,就执行;注意:test属性中的表达式,直接写普通的表达式不奏效,好像只能写 el表达式


备注:

当然了,上面介绍的都是el表达式和jstl标签库的简单用法;起个快速入门的作用 ;

《over》

(十)EL表达式和JSTL标签快速入门的更多相关文章

  1. jsp EL表达式和JSTL标签if-else if-else用法

    java web javaEE ,jsp EL表达式和JSTL标签if-else if-else四种用法一.条件运算符 ${user.gender==?'男':'女'} 二.if() <c:if ...

  2. JSP、EL表达式、JSTL标签库干货(建议收藏)

    JSP(Java Server Pages)类似于ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件, ...

  3. Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)

    一.JSP技术 1.jsp脚本和注释 jap脚本: 1)<%java代码%> ----- 内部的java代码翻译到service方法的内部,比如写在doget.dopost 内的代码 2) ...

  4. JavaWeb基础—EL表达式与JSTL标签库

    EL表达式: EL 全名为Expression Language.EL主要作用 获取数据(访问对象,访问数据,遍历集合等) 执行运算 获取JavaWeb常用对象 调用Java方法(EL函数库) 给出一 ...

  5. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用

    我之前虽然会用,但是一直分不清彼此之间有什么区别,所以查找资料,将它们进行整合区分,加深了解, 一 介绍 1.Struts2的作用   Struts2标签库提供了主题.模板支持,极大地简化了视图页面的 ...

  6. Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库

    一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...

  7. JSP和El表达式和JSTL标签库使用

    核心标签库: <%@ page language="java" import="java.util.*" pageEncoding="utf-8 ...

  8. EL表达式与JSTL标签map遍历varStatus属性下标使用

    在JSP页面开发中,JSTL标签库迭代标签<c:forEach>为我们迭代遍历数组集合提供了一种选择. 遍历过程中varStatus属性为我们遍历集合提升了很大操作空间. 贴一下具体使用 ...

  9. EL表达式、JSTL标签库

    一.EL(Expression Language)表达式 语法结构:${var} 若要停用对EL表达式的评估的话,需要使用page指令将isELIgnored属性值设为true: <%@ pag ...

随机推荐

  1. Centos7的rabbitmq镜像集群

    1.下载RabbitMQ vim /etc/hosts10.10.21.197 rabbit110.10.21.198 rabbit2 #分别命名hostname rabbit1hostname ra ...

  2. Selenium 八种元素定位方法

    前言: 我们在做WEB自动化时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素.工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素.那么我们怎么来定位他们呢? 在学 ...

  3. Linux中的MySQL授权远程连接

    Linux中 MySQL 授权远程连接 参考地址:https://www.centos.bz/2018/10/linux%e4%b8%ad-mysql-%e6%8e%88%e6%9d%83%e8%bf ...

  4. EXCEL技巧-多级目录设置

    现有如下图所示的数据,要求:以方法.厚度.品种进行分类汇总,并对数量.面积.金额求和. 在进行分类汇总前需要先对数据进行排序,操作如下图所示. 在排序对话框中,点击“添加条件” 两次,这样可以对三个字 ...

  5. iframe窗口嵌套,子窗口跳转重叠在父窗口的问题

    window.top //最顶层窗口 window.self //当前窗口 window.parent //父级窗口 "window.location.href"."lo ...

  6. sqlserver 动态sql执行execute和sp_executesql

    sp_executesql的运用 书写语法要点: exec sp_executesql @sql,N’参数1 类型1,参数2 类型2,参数3 类型3 OUTPUT’,参数1,参数2,参数3 OUTPU ...

  7. C#-片段-插入片段:测试

    ylbtech-C#-片段-插入片段:测试 using Microsoft.VisualStudio.TestTools.UnitTesting; 1.返回顶部 ·测试方法 [Microsoft.Vi ...

  8. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  9. 【407】C函数中的指针

    注意:如果对于函数中指针参数的对应值进行修改,当调用该函数后,实参会被修改,所以如果不想要实参被修改,需要为函数的形参定义一个 str_copy 的量,通过 strcpy() 进行将字符串复制给 st ...

  10. PAT 甲级 1032 Sharing (25 分)(结构体模拟链表,结构体的赋值是深拷贝)

    1032 Sharing (25 分)   To store English words, one method is to use linked lists and store a word let ...