天天看點

使用EL表達式擷取資料

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

繼續閱讀