EL表達式:從四大域對象中擷取資料并顯示到頁面上。
ELDemo.jsp檔案:
<%@ page language="java" import="java.util.*,com.neu.domain.Student" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>使用EL表達式擷取對象的屬性</title>
</head>
<body>
<br/>-------EL是從四個域範圍中查找資料的(不要忘記)---------<br/>
<%
Student s1 = new Student();
request.setAttribute("s", s1);
%>
${s}
<%--模拟原理
Student s = (Student)pageContext.findAttribute("s");
out.write(s);
--%>
<br/>-------EL擷取JavaBean的屬性---------<br/>
${s.name}=${s["name"]}=${s['name']}
<br/>-------EL擷取JavaBean的關聯對象的屬性---------<br/>
${s.address.province}=${s.address.city}
<hr/>
<br/>-------EL擷取數組中的元素---------<br/>
<%
String strs[] = {"陳冠希","鐘欣桐","張白癡","謝霆鋒"};
pageContext.setAttribute("strs", strs);
%>
${strs[1]}${strs[100]}
<br/>-------EL擷取List的元素---------<br/>
<%
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
pageContext.setAttribute("list", list);
%>
${list[1]}
<br/>-------EL擷取Map的資料:Map.Entry getKey getValue---------<br/>
<%
Map map = new HashMap();//根據key擷取value
map.put("a", "aaaa");
map.put("b", "bbbb");
map.put("c", "cccc");
pageContext.setAttribute("map", map);
%>
${map.b}
</body>
</html>
Student.java檔案:
package com.neu.domain;
import java.io.Serializable;
public class Student implements Serializable {
private String name = "張三";
private String gender;
private int age;
private Address address = new Address();
public Student(){}
public Student(String name, String gender, int age) {
super();
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
Address.java檔案:
package com.neu.domain;
public class Address {
private String province = "山東省";
private String city = "濟南市";
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
運作:http://localhost:8080/EL_project/ELDemo.jsp
結果:
——-EL是從四個域範圍中查找資料的(不要忘記)———
[email protected]
——-EL擷取JavaBean的屬性———
張三=張三=張三
——-EL擷取JavaBean的關聯對象的屬性———
山東省=濟南市
——-EL擷取數組中的元素———
鐘欣桐
——-EL擷取List的元素———
bbb
——-EL擷取Map的資料:Map.Entry getKey getValue———
bbbb