1. 程式人生 > >JSP EL表示式獲取資料

JSP EL表示式獲取資料

EL表示式基本格式:${}

EL表示式只能獲取4大域裡面的引數:(page,request,sission,applition)

EL表示式要獲取資料的格式:${p}     p是4大域裡獲取的引數

<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表示式 --%>
上面${p.name}的意思是從p物件獲取getname方法的值。

EL表示式在獲取的值為null的時間是不會輸出的,用EL表示式是不會出現空指標異常。

在${}裡實現的是pageContext.findAttribute()這個方法

所以:

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);
		
在上面這串程式碼中:用${qq}獲取值的先後順序是  page,request,session,application。

--------------------------------用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>