JSTL与EL表达式(为空判断)
一、循环遍历集合
1、在jsp中引入标准函数声明
<%@ taglib uri=" http://java.sun.com/jsp/jstl/core" pr efix="c"%> 3、如何使用jstl判断集合是否为空 ${us er}为集合,us er为集合名 <c:if t est="${ empty us er}">无信息!</c:if>为空 <c:if t est="${! empty us er}">其它</c:if>非空 4、如何取得集合的大小 ${fn:l ength(集合名<如果是s ession中的集合则应该加上s essionScop e.键>)} ${fn:l ength(map)} 5、如何取得保存在s ession中的对象? ${s essionScop e.键.对象属性} 6、varStatus显示循环变量的状态 例:<tag:for Each var="curr entFood" it ems="${s essionScop e.foods}" varStatus="status" <tag:if t est="${status%2==1}"> ..................... </tag:if> </tag:for Each> 其中status这个变量就记录了循环变量的状态 7、如何遍历Map集合 <c:for Each var="foodmap" it ems="${s essionScop e.cart}" varStatus="status"> <c:s et var="subtotal" valu e="${foodmap.valu e.b ean.foodPric e*foodmap.valu e.quantity}"></c:s et> </c:for Each> 遍历Map集合的值: foodmap:保存s ession中的map foodmap.valu e:取得map的值,即获取保存在map中的一个对象 要获取对象中的数据,必须用foodmap.valu e.quantity去点对象的属性(quantity就是对象的属性)
8、对象属性为空显示默认值
<c:forEach var="customer" items="${customers}">
<tr> <td><c:out value="${customer.lastName}"/></td> <td><c:out value="${customer.phoneHome}" default="no home phone specified"/></td> <td> <c:out value="${customer.phoneCell}" escapeXml="false"> <font color="red">no cell phone specified</font> </c:out> </td> </tr> </c:forEach> |