条件标签
<%@ page contentType=”text/html; charset=GB2312”%>
<%@ taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%>
<c:if>标签
说明:用于实现java语言中的if语句功能
语法:<c:if test=”逻辑表达式” var=”代表逻辑表达式的值的命名变量的名字” scope=”{page|request|session|application}”/>
示例:
<c:if test=”${param.username==’Tom’}” var=”result” scope=”request”/>
${result}
<c:choose>、<c:when>和<c:otherwise>标签
说明:这三个标签连在一起使用,可以实现java语言中的if-else语句的功能。
示例:
<c:choose>
<c:when test=”${empty param.username}”>
UnKnown user.
</c:when>
<c:when test=”${param.username==’tom’}”>
${param.username} is manager
</c:when>
<c:otherwise>
${param.username} is employee
</otherwise>
</choose>
迭代标签
<c:forEach>标签
说明:用于遍历集合中的对象,并且能重复执行标签主体。
语法:
<c:forEach var=”代表集合中的一个元素的命名变量的名字” items=”集合”>
标签主体
</c:forEach>
示例1:
<%@ page import=”java.util.HashSet” %>
<%
HashSet names = new HashSet();
name.add(“Tom”);
name.add(“Mike”);
name.add(“Linda”);
%>
<c:forEach var=”name” items=”<%=names %>”>
${name}
</c:forEach>
<c:forEach>标签的varStatus属性
<c:forEach>标签的varStatus属性用于设定一个javax.servlet.jsp.jstl.core.LoopTagStatus类型的命名变量,它位于NESTED范围,这个命名变量包含了从集合中取出的当前元素的状态信息。
l count:当前元素在集合中的序号,从1开始计数
l index:当前元素在集合中的索引,从0开始计数
l first:当前元素是否是集合中的第一个元素
l last:当前元素是否是集合中的最后一个元素
示例2:
<c:forEach var=”name” item=”<%=names %>” varStatus=”status”>
<c:when test=”${status.last}”>
<font color=”red>${name}</font>
</c:when>
<c:otherwise>
<font color=”green”>${name}</font>
</c:otherwise>
</c:forEach>
<c:forEach>标签中的begin、end和step属性
l begin:起始索引
l end:结束索引
l step:步长
示例3:
<%@ page import=”java.util.ArrayList” %>
<%
ArrayList colors = new ArrayList();
colors.add(“yed”); //inde:0
colors.add(“yellow”); //inde:1
colors.add(“blue”); //inde:2
colors.add(“green”); //inde:3
colors.add(“black”); //inde:4
%>
<c:set var=”colors” value=”<%=colors%>”
<c:forEach var=”color” items=”${colors}” begin=”1” end=”3” step=”2”>
${color}
</for:Each>
以上代码打印结果为:yellow green
<c:forEach>可以遍历的集合
l Java.util.Set、java.util.List、java.util.Map、java.util.Iterator和java.util.Enumeration接口的实现类
l Java数组
l 以逗号(“,”)分割的字符串
示例4:
<%@ page import=”java.util.HashMap” %>
<jsp:useBean id=”weeks” scope=”application” class=”java.util.HashMap”/>
<c:set target=”${weeks}” property=”one” value=”Mondy”/>
<c:set target=”${weeks}” property=”two” value=”Tuesday”/>
<c:forEach var=”entry” items=”${weeks}”>
${entry.key} : ${entry.value}
</c:forEach>
以上打印结果为:two:Tuesday one:Monday
示例5:
<%
String[] fruits = {“apple”,”orange”,”banana”,”peal”,”grape”};
%>
<c:forEach var=”fruit” items=”<%=fruits%>” end=”2”>
${fruit}
</c:forEach>
以上结果打印为:apple orange banana
示例6:
<c:forEach var=”name” items=”Tom,Mike,Linda”>
${name}
</c:forEach>
<c:forToken>标签
说明:<c:forTokens>标签用于遍历字符串中特定分隔符的子字符串,并且能重复执行标签体
语法:
<c:forTokens var=”代表子字符串的命名变量的名字” items=”被分隔的字符串” delims=”分隔符”></forEach>
示例:
<c:forTokens var=”name” items=”Tom:Mike:Linda” delims=”:”>
${name}
</forTokens>