EL表达式获取数据

摘要:
EL主要作用获取数据:EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域中检索java对象、获取数据。${user==null}获取web开发常用对象EL表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。调用Java方法EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。

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 = newPerson();
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 = newPerson();
29 Address address = newAddress();
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 = newPerson();
39 p1.setName("aa111");
40 Person p2 = newPerson();
41 p2.setName("bb");
42 List list = newArrayList();
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 = newHashMap();
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>

免责声明:文章转载自《EL表达式获取数据》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS中如何安装7ZIPShader笔记——6.Shader动画下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jsp、freemarker、velocity对比

在java领域。表现层技术主要有三种:jsp、freemarker、velocity。 jsp是大家最熟悉的技术长处:1、功能强大,能够写java代码2、支持jsp标签(jsp tag)3、支持表达式语言(el)4、官方标准。用户群广。丰富的第三方jsp标签库5、性能良好。jsp编译成class文件运行。有非常好的性能表现缺点:jsp没有明显缺点,非要挑点...

Qt编写地图综合应用12-路线查询

一、前言 路线查询的功能只有在线地图才有,因为这个路线规划需要经常更新的,这个数据同步需要大量的人力物力去统计,所以这玩意必须放在服务器端,就算是类似于手机端一样的放在本地离线,也需要隔一段时间更新的,不然数据很可能不正确。路线查询也叫出行规划,基本上分成两大类,一种是开车的一种是不开车的,其中开车的又有多种策略供选择比如最少时间、最短距离、避开高速等,不...

arcgis中邻接矩阵文件的生成

首先我要说明的是,arcgis 9.2中已经实现基于基本一阶邻接关系的空间自相关计算,也就是说arcgis系统本身已通过一定算法解决了本文以及之前blog中涉及的相关问题。以下内容仅限于算法设计的兴趣及对arcgis相关功能实现的探讨。arcgis 9.2中对于空间关联矩阵文件的构建做了拓展,你可以DBF属性中任意值为Unique的字段来建立矩阵。原先矩阵...

对List中每个对象元素按时间顺序排序

1 import java.util.*; 2 3 public class ListSort { 4 public static class UserBean { 5 private String id; 6 private String birthday; 7...

C# LINQ学习笔记二:LINQ标准查询操作概述

本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5801249.html,记录一下学习过程以备后续查用。 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法,大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T>接口 或 IQueryable<T&g...

java 将MySql数据库中的数据(某一列)取出放入数组中 转

转:http://blog.csdn.net/ewili/article/details/8605638 假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来: public void mysqlConnection(){ try { Class.forName("com.mysql.jdbc.Driver").new...