一、初次接触EL表达式:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式接触</title>
</head>
<body>
<%
String name = "mzy";
// 把变量放入域对象中 name value
pageContext.setAttribute("name", name);
pageContext.setAttribute("name", name, PageContext.REQUEST_SCOPE);
%>
<%=name %>
<br/>
EL表达式:${name}
<br/>
<%--
1) 以上的写法,EL从四个域中自动搜索
${name} 等价于<%=pageContext.findAttribute("name") %>
--%> <%--
2) EL从指定的域中获取
pageScope:page域
requestScope:request域
sessionScope:session域
applicationScope:application域
--%>
指定域获取的EL:${pageScope.name}
${name }
<%
response.sendRedirect("04pre_04el.jsp");
%>
</body>
</html>

二、使用EL表达式从不同类型的容器中获得数据:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ page import="entity.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL表达式获取不同类型的数据</title>
</head>
<body>
<%--
1) 普通的字符串
--%>
<%
String email = "zhangsan@qq.com";
// 一定要把数据放入域中
pageContext.setAttribute("email", email);
%>
普通字符串:${email }
<hr/>
<%--
2) 普通的对象
EL表达式的属性表示调用对象的getXX方法。例如
stu.name 调用Student对象的getName()方法
--%>
<%
Student stu = new Student("mzy", "123456");
pageContext.setAttribute("stu", stu);
%>
普通的对象:${stu} <br/>
对象的属性: ${stu.name } ---- ${stu.id }
<hr/>
<%--
3) 数组或List集合(集合只能是List集合)
--%>
<%
// 数组
Student[] stus = new Student[3];
stus[0] = new Student("Jack", "123456");
stus[1] = new Student("Bob", "123456");
stus[2] = new Student("Rose", "123456"); pageContext.setAttribute("stus", stus);
// List
List<Student> list = new ArrayList<Student>();
list.add(new Student("Jack", "654321"));
list.add(new Student("Bob", "654321"));
list.add(new Student("Rose", "654321"));
pageContext.setAttribute("list", list);
%>
<%--
在EL表达式中,不能循环,取元素只能单个单个的取
--%>
数组:<br/>
${stus[0].name } -- ${stus[0].id }<br/>
${stus[1].name } -- ${stus[1].id }<br/>
${stus[2].name } -- ${stus[2].id }<br/>
<hr/>
list集合:<br/>
${list[0].name } -- ${list[0].id }<br/>
${list[1].name } -- ${list[1].id }<br/>
${list[2].name } -- ${list[2].id }<br/>
<hr/>
<%--
4) Map集合
--%>
<%
Map<String,Student> map = new HashMap<String,Student>();
map.put("001",new Student("eric","123456"));
map.put("002",new Student("jacky","123456"));
map.put("003",new Student("rose","123456"));
pageContext.setAttribute("map",map);
%>
Map集合: <br/>
${map['001'].name } - ${map['001'].id }<br/>
${map['002'].name } - ${map['002'].id }<br/>
${map['003'].name } - ${map['003'].id }<br/>
</body>
</html>

三、EL中可执行的算式:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>EL中可以执行的算式</title>
</head>
<body>
<%--
1) 算数表达式: + - * /
--%>
<%
int a = 10;
int b = 5;
pageContext.setAttribute("a", a);
pageContext.setAttribute("b", b);
%>
${a+b }<br>
${a-b }<br>
${a*b }<br>
<hr> <%--
2) 比较表达式:> < >= <=
--%>
${a>b }<br>
${a==b }<br>
<hr> <%--
3) 逻辑表达式: &&、||、!
--%>
${true&&true }<br>
${true||false }<br>
${!true }<br>
${!(a>b) }
<hr/>
<%--
4) 判空表达式 empty
null: == null
空字符串:==""
--%>
<%
// String name = null;
String name01 = null;
String name02 = "";
pageContext.setAttribute("name01", name01);
pageContext.setAttribute("name02", name02);
%>
null:${name01 == null }<br>
空字符串:${name02 == "" }<br>
null或空字符串:${name01 == null || name01 =="" }<br>
null或空字符串可以直接用empty进行判断:${empty name01 }
</body>
</html>


EL表达式学习(一)的更多相关文章

  1. EL表达式学习

    EL表达式取值 1.EL表达式的语法格式很简单: 以前编写jsp代码时,如果要获取表单中的用户名,一般使用 <%=request.getParameter("name")%& ...

  2. EL表达式学习笔记

     转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html  一:EL表达式的用途 1.获取数据:(某个web域 中的对象,访问javabean的 ...

  3. EL表达式学习(二)

    1.从特定域中获取值: 2.从请求页面的input标签中,获取值:(同servlet中的getParameter和getParameterValues): 3.获取请求头(同servlet中的getH ...

  4. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  5. EL表达式-例子

    <%@page import="java.util.*"%> <%@page import="java.util.ArrayList"%> ...

  6. El 表达式和 Jstl 标签库

    El 表达式学习 1. 什么是 EL 表达式 全称:Expression Language,一种写法非常简介的表达式.语法简单易懂,便于使用.表达式语言的灵感来自于 ECMAScript 和XPath ...

  7. EL表达式详解(常用表达式以及取值)

    EL表达式 学习总结 一. El表达式概念 二. El中的表达式 1. 算术表达式 2. 比较表达式 3. 逻辑表达式 4. 三元表达式 5. 判空表达式 三.EL 从四个作用域中取值 1. 概念 2 ...

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

    EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 }  ...

  9. Java学习——JSTL标签与EL表达式之间的微妙关系

    原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...

随机推荐

  1. java并发编程基础——线程池

    线程池 由于启动一个线程要与操作系统交互,所以系统启动一个新的线程的成本是比较高的.在这种情况下,使用线程池可以很好的提升性能,特别是程序中涉及创建大量生命周期很短暂的线程时. 与数据库连接池类似,线 ...

  2. github在不同电脑上协同开发

    当我换了电脑后,开发自己的github项目遇到了一些问题. 首先,git clone 'repository url'拉取下来项目,开始开发项目发.修改了一些文件后,当要git commit, git ...

  3. 网络损伤仪WANsim的带宽限制功能

    带宽限制功能 带宽限制功能是网络损伤仪WANsim的第一项损伤功能.进入WANsim的报文首先会经过报文过滤器的处理,随后,就会进入带宽限制. 点击虚拟链路,就可以进入网络损伤界面,对报文进行带宽限制 ...

  4. Redis解读(4):Redis中HyperLongLog、布隆过滤器、限流、Geo、及Scan等进阶应用

    Redis中的HyperLogLog 一般我们评估一个网站的访问量,有几个主要的参数: pv,Page View,网页的浏览量 uv,User View,访问的用户 一般来说,pv 或者 uv 的统计 ...

  5. IBM java开发面试题

    1.commite在什么场合使用 svn 提交项目 数据库自动提交  Oracle手动,mysql自动 2.void(0)怎么使用 html界面 <a href="javaScript ...

  6. python3中的缺省参数和global

    关于py中缺省参数: 在声明函数的时候对某些参数(一个或多个)进行赋值,在你调用的时候无需在实参列表中体现该参数,但是在执行的时候会默认加上这个已经在形参中定义好的参数. 但是,缺省参数必须放在最后, ...

  7. VSCode远程免密登录

    VSCode远程免密登录 本地生成密钥 生成命令如下: ssh-keygen -t rsa 会生成id_rsa, id_rsa.pub两个文件 公钥拷贝到服务器 将公钥id_rsa.pub拷贝到服务器 ...

  8. 【剑指offer】53 - II. 0~n-1中缺失的数字

    剑指 Offer 53 - II. 0-n-1中缺失的数字 知识点:数组,二分查找: 题目描述 统计一个数字在排序数组中出现的次数. 示例 输入: nums = [5,7,7,8,8,10], tar ...

  9. SQL语句(一)基础查询与过滤数据

    目录 一.数据库测试表 二.基础查询 1. 获得需要的记录的特定字段 2. 查询常量值 3. 查询表达式 4. 查询函数 5. 起别名 6. 去重 7. CONCAT函数的简单使用 三.过滤数据 大纲 ...

  10. .net 知新:【4】NuGet简介和使用

    在包管理以前我们在项目中引用第三方包通常是去下载dll放到项目中再引用,后来逐渐发展成各种包管理工具,nuget就是一种工具,适用于任何现代开发平台的基本工具可充当一种机制,通过这种机制,开发人员可以 ...