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>
效果为:
Javaweb学习笔记——EL表达式的更多相关文章
- java学习笔记—EL表达式(38)
EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 } ...
- 重温JSP学习笔记--El表达式
el表达式是jsp内置的表达式语言,jsp从jsp2.0开始,就不再提倡使用java脚本,而是用el表达式和动态标签来替代,而el表达式主要替代的是jsp中的<%=....%>,也就是说e ...
- Javaweb学习笔记6—EL表达式与JSTL及自定义标签
今天来讲javaweb的第六阶段学习. EL表达式与JSTL及自定义标签是对上篇文章介绍的JSP的扩展,不能说是很重要的东西,但是也要了解. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps: ...
- Java8学习笔记----Lambda表达式 (转)
Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- javaweb学习笔记整理补课
javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...
- Javaweb学习笔记——(十二)——————JSP指令:page指令、include指令、taglib指令,JavaBean,内省,EL表达式
JSP指令JSP指令分类 JSP有三大指令: *page指令 *include指令 *taglib指令 在JSP中没有任何指令是必须的. 但基本上每个JSP都是使用page指令============ ...
- JavaWeb学习笔记(八)—— EL表达式
一.EL表达式概述 在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写很多Java代码,这样的做法会使JSP页面混乱,难以维护.为此,在JSP2.0规范中提供了EL表达式.EL全名 ...
- JavaWeb学习笔记--4.EL表达式
四. 表达式语言(相当于对JSP中对象输出的简化,功能实质上类似) 转自ZHSJUN的博客 http://blog.csdn.net/zhsjun/article/details/2254546 表达 ...
随机推荐
- OpenGL学习进程(13)第十课:基本图形的底层实现及算法原理
本节介绍OpenGL中绘制直线.圆.椭圆,多边形的算法原理. (1)绘制任意方向(任意斜率)的直线: 1)中点画线法: 中点画线法的算法原理不做介绍,但这里用到最基本的画0<=k ...
- 如何转型成为SQL Server DBA
本篇PPT是我在2015 MVP OPEN Day Comunity Camp上分享的课程.之所以选择这个主题是因为有很多人曾经问过这方面的问题,而与之相关的主题却少之又少,因此我希望将自己的 ...
- ICSharpCode.SharpZipLib.dll 移植WP
由于众所周知的原因. ICSharpCode.SharpZipLib.dll在Unity移植WP的时候出现诸多API不兼容,解决方案是在在Github上面找ICSharpCode.SharpZipLi ...
- js动态给当前点击元素添加css类
1.页面:
- 为 Neutron 准备物理基础设施(I) - 每天5分钟玩转 OpenStack(75)
前面讨论了 Neutron 的架构和基础知识,接下来就要通过实验深入学习和实践了. 第一步就是准备实验用的物理环境,考虑如下几个问题: 需要几个节点? 如何分配节点的角色? 节点上部署哪些服务? 配几 ...
- Javascript对象的方法赋值
Javascript对象编程学习中,一直不能很好的掌握对象的属性(property)和方法(method).今天在写代码过程中,又犯了一个低级错误. <!DOCTYPE html> < ...
- ORM开发之解析lambda实现完整查询(附测试例子)
上次讲解了怎么解析匿名对象(ORM开发之解析lambda实现group查询),这次来实现解析二元运算,完成基本条件语法 先看一个表达式 query.Where(b => b.Number == ...
- EntityFramework 如何进行异步化(关键词:async·await·SaveChangesAsync·ToListAsync)
应用程序为什么要异步化?关于这个原因就不多说了,至于现有项目中代码异步化改进,可以参考:实际案例:在现有代码中通过async/await实现并行 这篇博文内容针对的是,EntityFramework ...
- CentOS初始化Mysql5.7密码
/etc/init.d/mysql stopmysqld_safe --user=mysql --skip-grant-tables --skip-networking &mysql -u r ...
- 附录A 编译安装Hadoop
A.1 编译Hadoop A.1.1 搭建环境 第一步安装并设置maven 1. 下载maven安装包 建议安装3.0以上版本(由于Spark2.0编译要求Maven3.3.9及以上版本),本次 ...