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)练习:表格隔行变色