EL表達式語言中的隐含對象
從四個域中通過key找到簡單資料并顯示出來
${name} <!-- 類比于<%=pageContext.findAttribute("name") %> -->
四個域的尋找順序是 page,request,session,application。用EL表達式還有個好處,若找不到鍵值為name的屬性值,不會顯示null,會顯示空字元串。若是确定鍵值是在request域中,則可以用如下EL表達式代碼:
${requestScope.name}
從存儲在WEB域中的封裝了資料的JavaBean中得到對象的某個屬性值并顯示出來。
<%
Person p = new Person();
Address address = new Address();
address.setCity("浙江");//Adress類中有個私有String屬性為city
p.setName("mike");//Person類中有私有String屬性為name
p.setAddress(address);//Person類中有私有Adress屬性為address
session.setAttribute("person", p);//存入sessionScope
%>
${person.name}<!-- 從WEB域中找到鍵值為person的對象,然後再person對象中找到name屬性 -->
${person.address.city}
${person['name']}<!-- 也可以用[]方式 -->
${person['address']['city']}
除了用.方式獲得對象的屬性,也可以用[ ]方式,當然遇到鍵值名字中有-的,如mike-abc,或者key值為數字開頭,則隻能用[ ]方式。
從List集合對象中擷取某個值并顯示。
<%
List<Person> list = new ArrayList<Person>();
list.add(new Person("kkk"));
list.add(new Person("sss"));
list.add(new Person("jjj"));
application.setAttribute("list_1", list);
%>
${list_1[1].name }
從Map中擷取某個值并顯示。
<%
Map map = new HashMap();
map.put("a", new Person("aaa"));
map.put("b", new Person("bbb"));
map.put("1", new Person("ccc"));
request.setAttribute("map", map);
%>
${map['1'].name }<!-- 是數字的話隻能用括号,就算put進去的key值是字元串類型-->
${map.a.name }