使用EL表达式获取数据和使用JSTL标签库迭代容器

标签: el 表达式 数据 | 发表时间:2012-01-20 23:14 | 作者:a352193394
出处:http://blog.csdn.net

为了避免在JSP页面中出现Java代码和显示Servlet处理完成带过来的数据并且显示,使用EL表达式会非常容易而且简介,但是对于存放在容器中的数据,EL表达式不能单独完成迭代输出,所以必须使用JSTL标签库配合使用,这个是JavaEE附带的一个非常强大的标签库,估计在以后还会用到。

首先是EL表达式的几个不同情况的用法

<%@page import="com.bird.domain.Db"%>
<%@page import="com.bird.domain.Address"%>
<%@page import="com.bird.domain.Person"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>EL表达式的应用</title>
    
  </head>
  
  <body>
  <%
  	String date = "abcd";
  	request.setAttribute("date",date);
   %>
   
   ${date} <!-- 会被翻译成pageContext.findAttribute("date")分别从page,request,session,servletcontext查找
   如果寻找不到,则返回“”空字符串
    -->
    
    
    <%
    Person p = new Person();
    p.setName("小白");
    request.setAttribute("person",p);
     %>
     
     ${person.name}
     
     
     <%
     Person p1= new Person();
     Address a  = new Address();
     a.setCity("北京");
     p1.setAddress(a);
     request.setAttribute("p1",p1);
      %>
      
     ${p1.address.city}
     
     
     
     
     <%
     	List<Db> list = new ArrayList<Db>();
     	list.add(new Db("aaaaaa"));
     	list.add(new Db("bbbbbb"));
     	list.add(new Db("cccccc"));
     	
     	request.setAttribute("list",list);
      %>
      
      ${list[1].name }
      
      
      
      <%
      Map map = new HashMap();
      map.put("aa",new Db("aaaa"));
      map.put("bb",new Db("bbbb"));
      map.put("cc",new Db("cccc"));
      map.put("dd",new Db("dddd"));
      
      request.setAttribute("map",map);
      
       %>
       
       ${map.aa.name }<%--用表达式一般用点号,点号不行用[] --%>
       
       
       ${pageContext.request.contextPath }
  </body>
</html>

下面的是使用El表达式和JSTL标签库配合使用来完成容器的迭代

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@page import="com.bird.domain.Db"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"  %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>使用JSTL+EL表达式完成集合迭代</title>
    
  </head>
  
  <body>
   <%
     	List<Db> list = new ArrayList<Db>();
     	list.add(new Db("aaaaaa"));
     	list.add(new Db("bbbbbb"));
     	list.add(new Db("cccccc"));
     	
     	request.setAttribute("list",list);
      %>
      
      <c:forEach var="person" items="${list }">
      ${person.name }
      </c:forEach>
      
      <br/>
      
       <%
      Map map = new HashMap();
      map.put("aa",new Db("aaaa"));
      map.put("bb",new Db("bbbb"));
      map.put("cc",new Db("cccc"));
      map.put("dd",new Db("dddd"));
      
      request.setAttribute("map",map);
      
       %>
       
       <c:forEach var="entry" items="${map }">
       ${entry.key } : ${entry.value.name }
       </c:forEach>
  </body>
</html>


作者:a352193394 发表于2012-1-20 23:14:23 原文链接
阅读:7 评论:0 查看评论

相关 [el 表达式 数据] 推荐:

使用EL表达式获取数据和使用JSTL标签库迭代容器

- - CSDN博客推荐文章
为了避免在JSP页面中出现Java代码和显示Servlet处理完成带过来的数据并且显示,使用EL表达式会非常容易而且简介,但是对于存放在容器中的数据,EL表达式不能单独完成迭代输出,所以必须使用JSTL标签库配合使用,这个是JavaEE附带的一个非常强大的标签库,估计在以后还会用到. 首先是EL表达式的几个不同情况的用法.

高性能EL——Fel探秘,兼谈EL

- 冷月 - 淘宝JAVA中间件团队博客
    Fel是最近javaeye比较火的关键词,这是由网友lotusyu开发的一个高性能的EL,从作者给出的数据来看,性能非常优异,跟前段时间温少开源的Simple EL有的一拼. 首先要说,这是个好现象,国内的开源项目越来越多,可以看出开发者的水平是越来越高了,比如我最近还看到有人开源的类似kestel的轻量级MQ——fqueue也非常不错,有兴趣可以看下我的分析《fqueue初步分析》.

El-Hadji Diouf 恶搞 GIF(29P)

- 稀客魔 - Poboo
这是一张普通的足球比赛,球员是格拉斯哥流浪者队的球员El-Hadji Diouf,我是真不认识这哥们,google 查了一下,只说说他驾$600,000美金的Mercedes McLaren跑车,看来也是个有钱的银, 这不关键,关键是这哥们通过这场比赛,彻底红了,民间高手通过他大展身手,他的转身,成为了互联网上各种版本的传说.

Java EL 详细用法讲解

- - Java - 编程语言 - ITeye博客
本文主要介绍了Java EL的语法结构以及EL的使用方法,并结合例子代码讲解了Java EL对象、Java EL运算符以及Java EL函数. EL 提供.和[]两种运算符来存取数据. 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用 []. ${user.My-Name}应当改为${user["My-Name"] }.

NVIDIA 发布 Kal-El 白皮书,隐藏有第五个核心

- NOir - Engadget 中国版
我们已经知晓 Kal-El 的存在,我们期待着配置这个处理器的平板电脑和智能手机上市,不过关于这个处理器的优势在这之前还是个秘密,我们知道的并不多. 幸运的是,NVIDIA 这次发布了 Kal-El 白皮书,告诉我们这个拥有更高性能,更好电池续航力,更优游戏图像表现的处理器不仅仅是由四个主核心提供的,还有一个隐藏核心共同实现.

NVIDIA 發佈 Kal-El 白皮書,隱藏有第五個核心

- SotongDJ - Engadget 中文版
我們已經知曉 Kal-El 的存在,期待著配置這個處理器的平板電腦和智能手機上市,不過關於這個處理器的優勢在這之前還是個秘密,我們知道的並不多. 幸運的是,NVIDIA 這次發布了 Kal-El 白皮書,告訴我們這個擁有更高性能,更好電池續航力,更優秀遊戲圖像表現的處理器不僅僅是由四個主核心提供的,還有一個隱藏核心共同實現.

中兴Kal-El四核Android平板T98现身 支持TD-SCDMA

- xing - cnBeta.COM
2011年中国通信展于昨日在北京正式开幕,中兴通讯展台除了诸多采用Android、Windows Phone 7.5 "Mango"操作系统的新品手机外,一款平板也颇引人注意. 根据中兴提供的介绍,这款型号为T98的平板电脑采用的是NVIDIA开发代号为"Kal-El"的下一代四核Tegra处理器,而T98也抢在了华硕Eee Pad Transformer二代前使Kal-El/Android组合首次亮相.

NVIDIA Kal-El Windows 8 參考平台(又)動眼看

- SotongDJ - Engadget 中文版
雖然這未必是世界第一部運行 Windows 8 的 Kal-El 平板,但至少這會是第一部我們能夠接觸到,同時運行這顆矚目的 NVIDIA 4 核心處理器和 Windows 8 的裝置. 正如我們之前提到,NVIDIA 剛啟動了其 Windows 8 開發計劃,而這開發計劃的積極性也引起了我們的興趣.

正则表达式

- - CSDN博客推荐文章
    正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征. 比如 表达式“ab+” 描述的特征是“一个 'a' 和 任意个 'b' ”,那么 'ab', 'abb', 'abbbbbbbbbb' 都符合这个特征.     正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址.