EL表达式
1. EL是JSP内置的表达式语言!
* jsp2.0开始,不让再使用java脚本,而是使用el表达式和动态标签来替代java脚本!
* EL替代的是<%= ... %>,也就是说,EL只能做输出!
2. EL表达式来读取四大域
* ${xxx},全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null。
* ${pageScope.xxx}、${requestScope.xxx}、${sessionScope.xxx}、${applicationScope.xxx},指定域获取属性!
3. javaBean导航。
4. EL可以输出的东西都在11个内置对象中!11个内置对象,其中10个是Map!pageContext不是map,它就是PageContext类型,1个项9个。
下面就来演示一下EL表达式的JavaBean导航功能:首先我们创建一个JavaBean,包取名com.TestEL.Bean。其中两个java文件(Employer、Address)。然后创建一个jsp页面用作El表达式测试(ELBean.jsp)
<Employer.java>
package com.TestEL.Bean;
public class Employer {
private String name;
private double salary;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public String getHehe() {
return "我去、、、";
}
}
<Address.java>
package com.TestEL.Bean;
public class Address {
private String city;
private String street;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
}
<ELBean.jsp>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="com.TestEL.Bean.*"%>
<!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表达式的 JavaBean导航 功能(EL是jsp内置的表达式语言)</title>
</head>
<body>
<%
Address adr = new Address();
adr.setCity("北京");
adr.setStreet("长安街");
Employer emp = new Employer();
emp.setName("张飒");
emp.setSalary(43233);
emp.setAddress(adr);
emp.getHehe();
request.setAttribute("emp",emp); //存入一个类到request域中,也可以使用<jsp:useBean>的方式存入。
%>
<h3>使用el获取request域中的emp(el的JavaBean导航)</h3>
${requestScope.emp.name }
${requestScope.emp.salary } <%--注意方法字母要小写 --%>
${emp.hehe } <%--可见EL表达式还可以获取JavaBean中的任意get方法,即使该方法没有对应的属性 --%>
${requestScope.emp.address.street }
<%--式子解析: request.getAttribute("emp").getAddress().getStreet() --%>
</body>
</html>
EL表达式解析未完待续。。。