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>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: el表达式取复杂map数组的值
- 下一篇: 使用标签配合EL表达式遍历数组