el表达式简化了java web的开发.
一、EL表达式简介
EL 全名为Expression Language。EL主要作用:
1、获取数据
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行运算
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
3、获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
4、调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
1.1、获取数据
使用EL表达式获取数据语法:"${标识符}"
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
EL表达式可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page import="java.util.List"%>
<%@page import="java.util.ArrayList"%>
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hello Java Servelt</title>
</head>
<body>
<form action='/MyWebTestDemo1/HelloServet' method="get">
<input type="submit" name='提交'/>
</form>
<!-- 测试el表达式的使用 来测试下我们的javabean-->
<%
request.setAttribute("name", "黑客世界");
%>
使用el表达式获取的数据为:${name}
<hr >
<!-- 在jsp页面里面使用el表达式获取javabean的属性 -->
<%
class Person{
int age;
String name="jack";
public void Say(String name){
System.out.println("hello"+name);
}
}
Person tom=new Person();
tom.age=12;
request.setAttribute("age", 24);
%>
使用el表达式获取javabean的属性为:${age}
<hr>
<!-- 使用el表达式来获取el表达式里面的数据 -->
<%
class Person2{
String name;
String gender;
public void Person( String name){
this.name=name;
}
}
Person2 jack=new Person2();
jack.name="孤独苍狼";
Person2 lucy=new Person2();
lucy.name="白虎圣兽";
List w=new ArrayList();
w.add(jack);
w.add(lucy);
%>
<!-- 使用el表达式获取list集合中的数据. -->
使用el表达式获取指定位置的数据:${w[1].name}
<!-- 使用el表达式同样可以获取map里面的数据. -->
<!-- el表达式同样可以执行关系运算和 -->
<h3>el表达式同样可以执行关系运算</h3>
加法运算:${25+36}<br />
减法运算:${25-36}<br />
乘法运算:${25*36}
除法运算:${25/36}
<hr>
<!-- 使用el表达式来检测对象是否为空使用empty表达式 -->
<h3>使用el表达式来进行关系运算............</h3><br>
<!-- 使用${user==null}和${user eq null}是等价的来看看下面的测试结果..... -->
<h3>el表达式的数据回显</h3>
<hr>
<%
Person2 lily=new Person2();
lily.gender="男";
%>
<input type="radio" name="gender" value="male" ${Person2.gender=='male'?'checked':''}>男
<input type="radio" name="gender" value="male" ${user.gender=='male'?'checked':''}>女
<h3>获取web开发里面的一些常见的对象el表达式里面包含了11个隐藏的对象.</h3>
<hr>
获取web开发里面的常见的一些对象:${pageContext}
<br>pageContext:用户获取页面的pageContext对象</br>
<%
pageContext.setAttribute("name","孤傲苍狼");
%>
<br>pageScope从page域中查找数据.</br>
${pageScope.name}
<br>request:从request域(requestScope)中获取数据</br>
<%
request.setAttribute("name", "白虎圣兽");
%>
${requestScope.name}
</body>
</html>
截图如下: