EL表达式和JSTL标签库入门

EL表达式
  EL(Expression Language)--快速输出JavaBean的值或普通变量的值
 
  EL表达式用于获取数据,在JSP页面中可使用${标识符}的形式,通知JSP引擎调用pageContext.findAttribute()方法,以标识符为关键字从各个域对象中获取对象
  (先page,request,session,application)。
  如果域对象中不存在标识符所对应的对象,则返回结果为””(注意,不是null)。
  •    示例:使用EL表达式获取request、session、applection域中的数据。
  域对象.findAttribute("S") -- 对象.getXxx()
 
  EL表达式中也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。
  •    示例:使用EL表达式获取Bean属性。
  结合JSTL标签,EL表达式也可轻松获取各种集合中的元素。
  •    示例:使用EL表达式获取List、Map集合中的元素。
  EL表达式也可使用类如${1==1}的形式进行简单的逻辑判断
 
【注意】 <%@ page isELIgnored="false" %>是否让EL表达式忽略,false表示不忽略
<%@page import="org.apache.commons.beanutils.BeanUtils"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="cn.zengfansheng.web.javabean.*" %>
<%@ page isELIgnored="true" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  	<%
  		 Student s = new Student();
  		 BeanUtils.setProperty(s, "name", "hacket");
  		 BeanUtils.setProperty(s, "age", 21);
  		 BeanUtils.setProperty(s, "salary", 5999.0);
  		 request.setAttribute("stu", s);
  	%>
  <body>
  	${stu.name}<br />
  	${stu.age}<br />
  	${stu.salary}<br />
  </body>
</html>

JSTL标签库--JavaStandardTaglibLanguage

•JSTL是sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。
•在页面中使用JSTL标签需完成以下2个步骤:
1、导入jstl.jarstanderd.jar这两个JSTL的jar文件。
2、在JSP页面中使用<%@ tablib url=“”  prifix=“” %>元素导入标签库。
•JSTL标签库中常用标签:
<c:foreach var=“entry” items=“${map}”>
${entry.key} ${entry.value}
<c:if test=“${10>5}”>
 
  快速输出动态内容,以替代JSP页面中的脚本<%%>代码
 
【注】是否已将集合或变量绑定到域对象中,并确保该域对象没有销毁,因为EL只有从域对象中检索对应的值
 
 JSTL都会和EL绑定在一起用,而EL可以单独使用
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="jstl" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
  	<% 
  		List<String> list = new ArrayList<String>();
  		list.add("javase");
  		list.add("xml");
  		list.add("jsp");
  		list.add("servlet");
  		request.setAttribute("List", list);
  	%>
  	<table border="1px" align="center">
  		<tr>
  			<th>书名</th>
  			<th>操作</th>
  		</tr>
  			<jstl:forEach var="l" items="${ List }">
  			<tr>
  				<td>${ l }</td>
  				<td>购买</td>
	  		</tr>
  			</jstl:forEach>
  	</table>
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="map" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
  	<% 
	  	Map<Integer,String> map = new LinkedHashMap<Integer,String>();
	  	map.put(1, "java");
	  	map.put(2, "xml");
	  	map.put(3, "jsp");
	  	map.put(4,"servlet");
	  	map.put(5,"ssh");
	  	/* 存入到域对象中去 */
	  	pageContext.setAttribute("MAP", map);
  	%>
  	<table border="1px" align="center">
  		<tr>
  			<th>编号</th>
  			<th>书名</th>
  			<th>操作</th>
  		</tr>
  			<map:forEach var="entry" items="${ MAP }"><!-- map.entrySet() -->
  			<tr>
  				<td>${ entry.getKey() }</td>
  				<td>${ entry.getValue() }</td>
  				<td>购买</td>
	  		</tr>
  			</map:forEach>
  	</table>
  </body>
</html>

  

  

 
posted @ 2013-03-29 23:29  hacket520  阅读(273)  评论(0)    收藏  举报