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.jar和standerd.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>
by hacket

浙公网安备 33010602011771号