EL表达式学习(一)
一、初次接触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表达式学习(一)的更多相关文章
- EL表达式学习
EL表达式取值 1.EL表达式的语法格式很简单: 以前编写jsp代码时,如果要获取表单中的用户名,一般使用 <%=request.getParameter("name")%& ...
- EL表达式学习笔记
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684424.html 一:EL表达式的用途 1.获取数据:(某个web域 中的对象,访问javabean的 ...
- EL表达式学习(二)
1.从特定域中获取值: 2.从请求页面的input标签中,获取值:(同servlet中的getParameter和getParameterValues): 3.获取请求头(同servlet中的getH ...
- jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门
一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...
- EL表达式-例子
<%@page import="java.util.*"%> <%@page import="java.util.ArrayList"%> ...
- El 表达式和 Jstl 标签库
El 表达式学习 1. 什么是 EL 表达式 全称:Expression Language,一种写法非常简介的表达式.语法简单易懂,便于使用.表达式语言的灵感来自于 ECMAScript 和XPath ...
- EL表达式详解(常用表达式以及取值)
EL表达式 学习总结 一. El表达式概念 二. El中的表达式 1. 算术表达式 2. 比较表达式 3. 逻辑表达式 4. 三元表达式 5. 判空表达式 三.EL 从四个作用域中取值 1. 概念 2 ...
- java学习笔记—EL表达式(38)
EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 } ...
- Java学习——JSTL标签与EL表达式之间的微妙关系
原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...
随机推荐
- Day1 Markdown学习!
Markdown学习 标题 一级标题:# (空格)+内容 二级标题:##(空格)+内容 同理可支持到六级标题 字体 Hello,World! 两边两个** 加粗 Hello,World! 两边一个* ...
- Junit测试用例配置Log4j
用Junit测试非常方便,但有时我们想要看日志来方便排除,使用spring+log4j时,用Junit测试看日志很多人都不太会,即如何将Junit与log4j进行整合. 我也是研究了半天,才终于找到了 ...
- PAT乙级:1084 外观数列 (20分)
PAT乙级:1084 外观数列 (20分) 题干 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, ... 它从不等于 1 的数字 d ...
- VUP虚拟直播与光学动作捕捉技术
虚拟直播将虚拟场景.虚拟形象实时显示在观众面前,虚拟场景与人物替代了原有的耗费较大搭建成本的实景场景与真人出镜,为观众带来全新的视觉体验,同时新技术降低了原有场景搭建成本,是近些年继AI.VR.动作捕 ...
- 【并查集模板】并查集模板 luogu-3367
题目描述 简单的并查集模板 输入描述 第一行包含两个整数N.M,表示共有N个元素和M个操作. 接下来M行,每行包含三个整数Zi.Xi.Yi 当Zi=1时,将Xi与Yi所在的集合合并 当Zi=2时,输出 ...
- 用好Git stash,助你事半功倍
git stash: 用法:git stash list [<选项>] 或:git stash show [<选项>] [<stash>] 或:git stash ...
- java顺序结构、循环结构、选择结构
java顺序结构.选择结构.循环结构 顺序结构: 语句与语句之间,框与框之间是从上到下的顺序进行的,它是由若干个依次执行的处理步骤执组成的,它是任何一个算法都不离开的一种基本算法结构. 选择结构: 1 ...
- Django < 2.0.8 任意URL跳转漏洞(CVE-2018-14574)
影响版本 Django < 2.0.8 抓包 访问http://192.168.49.2:8000//www.example.com,即可返回是301跳转到//www.example.com
- 移动APP我们需要关注什么
移动APP关注的点比web或者PC上的程序更多 1.测试用例的设计 移动互联网的快节奏,要放弃传统的测试用例编写方式,不需要写详细的测试用例,采用罗列测试点的方式如思维导图,这样既节省时间又能够直观清 ...
- 教你如何使用FusionInsight SqoopShell
摘要:Sqoop-shell是一个Loader的shell工具,其所有功能都是通过执行脚本"sqoop2-shell"来实现的. 本文分享自华为云社区<FusionInsig ...