JavaWeb课程系列
4.1 核心标签库:分支
1)一重条件判断[c:if]
多个c:if之间是没有任何关系的
<% pageContext.setAttribute("age", "25"); %> <c:if test="${age < 18 }">祖国的花骨朵</c:if> <c:if test="${age >= 18 && age < 25 }">2B青年</c:if> <c:if test="${age >= 25 && age < 40 }">苦B青年</c:if> <c:if test="${age >= 40 && age < 50 }">年富力强</c:if> <c:if test="${age >= 50 && age < 65 }">享受成功</c:if> <c:if test="${age >= 65 }">退休生活</c:if> |
2)多重条件判断[c:choos/c:when/c:otherwise]
程序执行时,按照从上往下的顺序执行c:when,一旦找到满足条件的c:when就不再继续执行了,如果没有任何满足的c:when则执行c:otherwise。
<c:choose> <c:when test="${age < 18 }">祖国的花骨朵</c:when> <c:when test="${age < 25 }">2B青年</c:when> <c:when test="${age < 40 }">苦B青年</c:when> <c:when test="${age < 50 }">年富力强</c:when> <c:when test="${age < 65 }">享受成功</c:when> <c:otherwise>退休生活</c:otherwise> </c:choose> |
4.2 核心标签库:迭代
c:forEach
1)遍历对象为索引集合[List/Set/Array]
<c:forEach items="${listAttr }" var="person"> ${person.name }:${person.age }<br /> </c:forEach> |
2)遍历对象为键值对集合
<c:forEach items="${personMap }" var="entry"> ${entry.key }:${entry.value.name }:${entry.value.age }<br /> </c:forEach> |
3)遍历过程中的元素状态
[1]使用varStatus属性获取status元素状态对象,这个对象的类型是:javax.servlet.jsp.jstl.core.LoopTagSupport$1Status <c:forEach items="${listAttr }" var="person" varStatus="status"> ${person.name }:${person.age }:${status.class }<br /> </c:forEach> |
[2] Status实现了javax.servlet.jsp.jstl.core.LoopTagStatus接口 |
[3]获取遍历状态 <c:forEach items="${arr }" var="item" varStatus="status" step="2"> <tr> <td>${item }</td> <td>${status.index }</td> <td>${status.current }</td> <td>${status.count }</td> <td>${status.first }</td> <td>${status.last }</td> <td>${status.step }</td> </tr> </c:forEach> |
4)c:forTokens
根据指定字符拆分字符串,并遍历得到的集合 <% pageContext.setAttribute("str", "aa,bb,ee,mm,tt"); %> <c:forTokens items="${str }" delims="," var="item"> ${item }<br /> </c:forTokens> |
5)练习:表格隔行变色