天天看點

El 表達式和JSTL表達式(1)

EL表達式語言中的隐含對象

El 表達式和JSTL表達式(1)
El 表達式和JSTL表達式(1)
El 表達式和JSTL表達式(1)
El 表達式和JSTL表達式(1)

從四個域中通過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 }

           

繼續閱讀