一、初次接触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. 基于JSP的学生考勤管理系统(MySQL版)

    介绍:基于JSP的学生考勤管理系统(MySQL版)1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善.开发环境:Eclipse ,MyS ...

  2. 【保姆级】利用Github搭建自己的个人博客,看完就会

    大家好,我是辰哥~ 作为一名喜欢技术的爱好者,平时喜欢把自己学习技术的心得或者一些踩坑.易错的过程记录下来,首选的是技术平台(博客),今天辰哥来教大家如何利用Github来搭建一个自己的个人博客平台. ...

  3. 在线体验 Windows 11「GitHub 热点速览 v.21.30」

    作者:HelloGitHub-小鱼干 有什么比无需安装系统,检测硬件兼容度,只要打开一个浏览器,输入某个神秘的地址回车,即可体验 Windows 11 更棒的呢?windows11 就是这么一个小工具 ...

  4. AT2304 Cleaning

    AT2304 Cleaning 题意 一个树上每个节点有一些石子,每次只能选取两个叶子节点并将路径间的所有点上的石子数量减1,问是否能将所有石子取完. 思路 设 \(f_x\) 表示从 \(x\) 节 ...

  5. 完整的URL是怎样的?

    完整的URL字段解读: URL:http://localhost:80/MzyPractice/chapter10/testb.php?name=Mei&radio=Test#dowel ht ...

  6. Python基础之tabview

    以前写过界面,但是没有记录下来,以至于现在得从头学习一次,论做好笔记的重要性. 现在学习的是怎么写一个tabview出来,也就是用tkinter做一个界面切换的效果.参考链接:https://blog ...

  7. Vue--之调试

    vue.文件的调试 方法:在chrome浏览器中,F12,在Sources中ctrl+F 查找leftMenu.vue, 打断点,F8完成加载

  8. JS 高级程序设计3.5.1一元操作符 递增和递减操作符++ --

    var age =29 ++age; 在这个例子中,前置递增操作符把age的值变成了30.实际上,执行这个前置递增操作符与执行 一下操作的效果相同: var age=29; age =age+1;// ...

  9. 【LeetCode】297. 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 知识点:二叉树:递归 题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一 ...

  10. 用好WinSCP,无惧Linux命令

    很多人惧怕Linux系统的命令操作模式.实际上对于普通用户来说用到命令的概率非常小. 我们在实践过程中发现管理Linux系统,最多使用如下两个工具: WinSCP(必用):可视化界面工具,实现文件管理 ...