JSP EL表示式獲取資料
阿新 • • 發佈:2019-01-02
EL表示式基本格式:${}
EL表示式只能獲取4大域裡面的引數:(page,request,sission,applition)
EL表示式要獲取資料的格式:${p} p是4大域裡獲取的引數
上面${p.name}的意思是從p物件獲取getname方法的值。<jsp:useBean id="p" class="domain.Person" scope="page"></jsp:useBean> <jsp:setProperty property="name" name="p" value="xixix"/> <jsp:getProperty property="name" name="p"/><br><%--jsp表示式 --%> <%=p.getName() %><br> ${p.name }<br><%--EL表示式 --%>
EL表示式在獲取的值為null的時間是不會輸出的,用EL表示式是不會出現空指標異常。
在${}裡實現的是pageContext.findAttribute()這個方法
所以:
在上面這串程式碼中:用${qq}獲取值的先後順序是 page,request,session,application。pageContext.setAttribute("qq", "qq1", pageContext.PAGE_SCOPE); pageContext.setAttribute("qq", "qq2", pageContext.REQUEST_SCOPE); pageContext.setAttribute("qq", "qq3", pageContext.SESSION_SCOPE); pageContext.setAttribute("qq", "qq4", pageContext.APPLICATION_SCOPE);
--------------------------------用EL表示式也可以獲取到陣列,Collect,Map類--------------------------------------------
-- . (點)可以用[](中括號)代替 但是[](中括號)不一定可以用. (點)代替 --
--獲取陣列中指定的元素 --
<% String str[] = {"a","b","c"}; pageContext.setAttribute("str", str); %> ${str[1]} ${str[100]}
--獲取list中的元素 --
<%
LinkedList list = new LinkedList();
list.add("xxx");
list.add("sss");
list.add("www");
pageContext.setAttribute("list", list);
%>
${list[1] }
--獲取Map中的元素 --%><%--如果put索引號是用數字,必須map["數字"] --
<%
Map map = new HashMap();
map.put("1", new Computer("e5300","2g"));
map.put("b", new Computer("i3 530","4g"));
//map.put("3", new Computer("i7 980","6g"));
//map.put("a", "elele");
//map.put("b", "qweqw");
pageContext.setAttribute("map", map);
%>
${map["1"].cpu}<br>
${map.b.memory }<br>