Javaweb学习笔记——EL表达式

一、前言

EL表达式是什么?

简而言之,可以这样理解,EL表达式全名为:Exprexxsion Language,原先是JSTL 1.0为了方便存取数据而定义的语言,到了JSTL 2.0便正式成为标准之一。EL表达式的引入可以简化jsp页面中的java代码,方便存取数据等优点。

EL表达式的作用有:

1、获取数据

  EL表达式替换jsp页面中的java代码,可以从各种类型的WEB域对象中检索java对象,获取数据,

2、执行运算

  EL表达式支持逻辑运算和算术运算,可在jsp页面进行简单的运算功能,如${1+1}

3、获取WEB开发常用对象

  EL表达式定义一些隐式对象,利用这些隐式对象,开发人员可以轻松获得web对象的引用,从而获得对象的数据

4、调用java方法

  EL表达式运行用户自定义EL函数,可在java通过表达式调用函数

1.1、获取数据

  使用EL表达式的语法为:${标识符}

  EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

  EL表达式可以获取javaBean对象的属性,数组,Collection,Map类型集合的数据

EL常用语法:

<%@page import="java.util.Map"%>
<%@page import="java.util.HashMap"%>
<%@page import="java.util.ArrayList"%>
<%@page import="com.el.tag.Person"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>el表达式</title>
</head>
<body>
    <%
        request.setAttribute("name", "升少");
    %>
    <!--${name}等于pageContext.findAttribute("name");  -->
    使用EL表达式获取数据:${name }
    <br/>
    <!--获取javabean对象中的数据  -->
    <%
        //JavaBean
        Person p = new Person();
        p.setUname("张三");
        request.setAttribute("person", p);
    %>
    使用EL表达式获取Bean对象的数据:${person.uname }
    <br/>

    <!--获取特定对象的数据  -->
    <%
        Person p1 = new Person();
        p1.setUname("李四");

        Person p2 = new Person();
        p2.setUname("王五");

        ArrayList list = new ArrayList();
        list.add(p1);
        list.add(p2);

        request.setAttribute("list", list);
    %>
    <!--获取list对象特定的数据  -->
    list集合的值为:${requestScope.list[0].uname }
    <br/>

    <!--循环集合  -->
    循环集合产生的值:<br/>
    <c:forEach var="items" items="${list }">
        ${items.uname }<br/>
    </c:forEach>
    <br/>

    <!--在jsp页面中,使用map集合 -->
    在jsp页面使用map集合
    <%
        Map<String,String> map = new HashMap<String,String>();
        map.put("1", "值1");
        map.put("ccc", "值2");
        map.put("3", "值3");
        map.put("4", "值4");
        request.setAttribute("map", map);
    %>
    <!--注意:数字是特殊字符 ,不能用逗号点出数据 -->
     使用el表达式读取map集合的数据:${map["1"]}与——>${map.ccc }
    <br/>

    <br/>
    <!--循环map集合对象  -->
    <c:forEach var="maps" items="${map }">
        ${maps.key }=${maps.value }<br/>
    </c:forEach>
    <br/>
</body>
</html>

效果为:

时间: 2024-10-18 10:55:50

Javaweb学习笔记——EL表达式的相关文章

java学习笔记—EL表达式(38)

EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 } ? 算术运算 <!-- 算术运算 --> 20+10 = ${ 20+10 } <br/> 20-10 = ${ 20-10 } <br/> 20*10 = ${ 20*10 } <br/> 20/10 = ${ 20/10 } <br/> 20%10

Javaweb学习笔记6—EL表达式与JSTL及自定义标签

 前几天博客被黑了,导致博客登陆不上,把前几天应该发的东西的东西重新发一遍 今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多. 一.EL表达式 1,EL简介 Expression Lan

c++ 11学习笔记--Lambda 表达式(对比测试Lambda ,bind,Function Object)

所有c++ coder都应该为这个语法感到高兴,说的直白一点,Lambda 表达式就是函数对象的语法糖. 还是直接看对比栗子吧,抄袭的是msdn的官网 该示例使用 for_each 函数调用中嵌入的 lambda 向控制台打印 vector 对象中的每个元素是偶数还是奇数. 使用lambda #include <algorithm> #include <iostream> #include <vector> using namespace std; int main()

c++ 11学习笔记-- 常量表达式(constexpr)

最新在弄android ndk相关的,惊奇的发现最新的ndk10的版本已经gcc4.9了,我印象中,gcc4.8就支持C++0x11,14的支持,gcc再次走到了llvm的前面,LLVM最新的版本3.4.2应该只支持c++ 11,如果是同样的c++代码我一直认为llvm的效率会明显强过gcc. 废话不多说,让我们开始学习c++ 11吧,说实话我之前一直都很抗拒c++新的语法,感觉太难接受了,现在看来不熟悉也不行了. 常量表达式(constexpr) 常量表达式机制是为了: 提供了更多的通用的值不

Javaweb学习笔记--分层设计

在早期的JavaWeb应用中,JSP文件负责处理业务逻辑,控制网页流程并创建HTML页面,JSP文件是一个独立的,能自主完成所有任务的模块, 这带来了一系列问题:HTML代码和Java程序代码强耦合在一起内嵌的流程控制逻辑调试困难可维护性差可读性差 为了解决以上问题,SUN公司先后制定了两种设计模式:jspmodel1以及jspmodel2 本质区别:在于负责流程控制的组件不同. 0x01 Model1 在JSP Model1中,JSP页面负责调用模型组件来响应客户请求,并将处理结果返回给用户.

JavaWeb学习笔记六 JSP

JSP技术 JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分.网页开发者们通过结合HTML代码以及嵌入JSP操作和命令来编写JSP. JSP通过网页表单获取用户输入数据.访问数据库及其他数据源,然后动态地创建网页. JSP标签有多种功能,比如访问数据库.记录用户选择信息.访问JavaBeans组件等,还可

【JAVAWEB学习笔记】18

一.EL技术 1.EL 表达式概述 EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写. 2.EL从域中取出数据(EL最重要的作用) jsp脚本:<%=request.getAttribute(name)%> EL表达式替代上面的脚本:${requestScope.name} EL最主要的作用是获得四大域中的数据,格式${EL表达式} EL获得pageContext域中的值:${pageScope.key}

struts2学习笔记--OGNL表达式1

struts2标签库主要使用的是OGNL语言,类似于El表达式,但是强大得多,它是一种操作对象属性的表达式语言,OGNL有自己的优点: 能够访问对象的方法,如list.size(); 能够访问静态属性和静态方法,只需要在类名前,方法前加上@,如@[email protected]; 支持赋值操作.如赋值#value=5; 能够访问OGNL上下文和ActionContext; 能操作集合类对象. 使用OGNL: public class Test { public static void main

javaweb part6---jstl以及el表达式

jstl / Java标准标签库/和EL表达式配合使用在JSP中取代 Java代码 el表达式运算符号 gt >lt <ge >=le <=eq ==ne !=and &&or ||not !xx.xxx xx["xxx"]xx?xxx:xxx; 标签库 建议前缀core/cxml/x(不在jsp中处理xml文件)fmt/fmtsql/sql(不在jsp中操作数据库)functions/fn <前缀:标签名 属性名=属性值 属性名=属性值&