EL表达式获取数据

EL 全名为Expression Language。

EL主要作用

获取数据:

•EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)

执行运算:

•利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}

获取web开发常用对象

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

调用Java方法

•EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

EL表达式获取数据

1.使用EL表达式获取数据语法:“${标识符}”

2.EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。EL表达式${xxx}会先看xxx是不是EL表达式的隐式对象,是就直接返回隐式对象的引用,不是就翻译成pageContext.findAttribute(“xxx”)。

3.EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如:

•${user.address.city}

•${user.list[0]}:访问有序集合某个位置的元素

•${map.key}  : 获得map集合中指定key的值

4.结合JSTL的foreach标签,使用EL表达式也可以很轻松迭代各种类型的数组或集合,示例:

•迭代数组

•迭代collection类型集合

•迭代map类型集合

 1 <%@page import="com.yyz.Address"%>
 2 <%@page import="com.yyz.Person"%>
 3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 5 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 6 <html>
 7   <head>
 8     <title>el表达式获取数据示例</title>
 9   </head>
10   <body>
11      <%
12         request.setAttribute("name","aaa");
13     %>
14      ${name }  <%--pageContext.findAttribute("name") --%>
15
16     <br/><hr><br/>
17      <!-- 在jsp页面中,使用el表达式可以获取bean的属性 -->
18     <%
19         Person p = new Person();
20         p.setAge(12);
21         request.setAttribute("person",p);
22     %>
23     ${person.age }
24
25     <br/><hr><br/>
26     <!-- 在jsp页面中,使用el表达式可以获取bean中的bean(中的bean。。。)的属性 -->
27     <%
28         Person person = new Person();
29         Address address = new Address();
30         person.setAddress(address);
31         request.setAttribute("person",person);
32     %>
33    ${person.address.name }
34
35     <br/><hr><br/>
36     <!-- 在jsp页面中,使用el表达式获取list集合中指定位置的数据 -->
37     <%
38         Person p1 = new Person();
39         p1.setName("aa111");
40         Person p2 = new Person();
41         p2.setName("bb");
42         List list = new ArrayList();
43         list.add(p1);
44         list.add(p2);
45         request.setAttribute("list",list);
46     %>
47     ${list[1].name }  <!-- 取list指定位置的数据 -->
48      <!-- 迭代集合 -->
49     <c:forEach var="person" items="${list}">
50         ${person.name }
51     </c:forEach>
52
53    <br/><hr><br/>
54    <!-- 在jsp页面中,使用el表达式获取map集合的数据 -->
55     <%
56         Map map = new HashMap();
57         map.put("a","aaaaxxx");
58         map.put("b","bbbb");
59         map.put("c","cccc");
60         map.put("1","aaaa1111");
61         request.setAttribute("map",map);
62     %>
63     ${map.c }  <!-- 根据关键字取map集合的数据 -->
64       ${map["1"] }<!-- 如果Map的关键字是一个数字,则用点运算符搞不定,点运算符搞不定的用中括号运算符 -->
65     <c:forEach var="me" items="${map}">
66           ${me.key }=${me.value }<br/>
67       </c:forEach>
68     <br/><hr><br/>
69    </body>
70 </html>
时间: 2024-12-04 05:08:22

EL表达式获取数据的相关文章

[javaEE] EL表达式获取数据

jsp标签: <jsp:include> <jsp:forward> 实现请求转发 <jsp:param> 给上面的添加参数的 EL表达式: 1.获取变量数据 <% String name="陶士涵"; pageContext.setAttribute("name",name); %> 你好,${name} 2.获取数组数据 <% String[] names={"陶士涵","张三&

黑马day06 EL表达式获取数据

获取数据: 使用中括号的地方都可以使用点号替代,除了中括号中是数字或者中括号中包含特殊字符(-.)的情况除外 在中括号中如果不用双引号引起来则是变量,先找变量的值再拿变量的值使用.如果用双引号则是常量,直接使用常量的值 ~获取常量 字符串/数字/布尔类型,直接写在el表达式中,el直接进行输出 ~获取域中的变量 如果el中写的是一个变量的名,则el会调用pageContext的findAttribute方法,在四大作用域中以给定的名字找对应的属性值,找到后进行输出,如果四个域中都找不到,什么都不

EL表达式获取数据的方式

<%@page import="cn.jiemoxiaodi.domain.Person"%> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme() +

在JSP页面用EL表达式获取数据

<h4>获取域对象中的值</h4><%    request.setAttribute("name", "射雕英雄传");    application.setAttribute("name", "鹿鼎记");%>${requestScope.name } ${applicationScope.name } <h4>获取数组中的值</h4><%    Strin

JAVAWEB开发之Session的追踪创建和销毁、JSP详解(指令,标签,内置对象,动作即转发和包含)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的服务器端技术,当客户端第一次访问资源时 如果调用request.getSession() 就会在服务器端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,如果浏览器没有禁用cookie的话,当浏览器再次访问项目中的Servlet程序时会将JSESSIONID带着,这时JSESSIONID就像唯一的一把钥匙  开启服务器端对应的session空间,进而获取到sessi

JAVAWEB开发之Session的追踪创建和销毁、JSP具体解释(指令,标签,内置对象,动作即转发和包括)、JavaBean及内省技术以及EL表达式获取内容的使用

Session的追踪技术 已知Session是利用cookie机制的server端技术.当client第一次訪问资源时 假设调用request.getSession() 就会在server端创建一个由浏览器独享的session空间,并分配一个唯一且名称为JSESSIONID的cookie发送到浏览器端,假设浏览器没有禁用cookie的话,当浏览器再次訪问项目中的Servlet程序时会将JSESSIONID带着.这时JSESSIONID就像唯一的一把钥匙  开启server端相应的session空

关于页面EL表达式获取list集合、元素相关

之前做项目(裁判文书信息修改)的时候,遇到一些问题 1.数据树结构显示失败 页面数据显示不出来树结构,原因是因为缺少调用接口方法  ztreeNodes1 = getDeptREmp(oid); 2.json拼接的问题 //之前的拼接方法是: jsonstr = "{\"oid\":\""+oid+"\"}"; //拼接json ,\"dyfs\":\""+dyfs+"\&qu

SSH 框架controller向jsp传递List jsp中使用el表达式获取

mvc可以使用ModelAndViev传递数据选择跳转的视图 controller中的代码, 把一个模拟的表单studentListSimulate传给ModelAndView @RequestMapping("/detial") public Model showStudentDetial(Model mod) { ModelAndView mav = new ModelAndView(); mav.addObject("studentListSimulate",

【JSP EL】EL表达式 获取list长度/不用循环,EL在List中直接获取第一项的内容/EL获取Map的键,Map的值

1.EL表达式 获取list长度 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <c:if test="${fn:length(list名字)>1}"&g