IT兄弟連 JavaWeb教程 JSTL常用標簽
條件標簽能夠實現Java語言中的if語句以及if-else語句的功能,它包括以下幾種:
<c:if>:用於實現Java語言中的if語句的功能。
<c:choose>、<c:when>、<c:otherwise>:用於實現Java語言中if-else語句的功能。
(1)<c:if>標簽
<c:if>標簽用於實現Java語言中的if語句的功能,它的語法為:
<c:if test="邏輯表達式" var="代表邏輯表達式的值的命名變量的名字"
scope= "{page|request|session|application}" />
</c:if>
<c:if>標簽會把邏輯表達式的值存放在var屬性指定的命名變量中,scope屬性則指定命名變量的範圍,scope屬性的默認值是page。
例如以下<c:if>標簽先判斷username請求參數的值是否為Tom,然後把判斷結果作為result命名變量存放在請求範圍內:
<c:if test="${param.username==’Tom’}"
var = "result" scope="request" />
${result}
</c:if>
以上<c:if>標簽等價於以下Java程序片段:
<%
String username = request.getParamaeter("username");
if(username!=null &&"Tom".equals(username)){
request.setAttribute("result",true);
}else{
reuqest.setAttribute("result",false);
}
%>
<c:if>標簽還可以包含標簽主體,只有當邏輯表達式的值為true時,才會執行標簽主體。例如:
<c:if test=${param.save==’user’}" >
Saving user
<c:set var="user" value="Tom" />
</c:if>
以上<c:if>標簽等價於以下Java程序片段:
<%
String save=request.getParameter("save");
if(save!=null && "user".equals(save)){
out.print("Saving user");
pageContext.setAttribute("user","Tom");
}
%>
(2)<c:choose>、<c:when>、<c:otherwise>標簽
<c:choose>、<c:when>、<c:otherwise>標簽在一起連用,可以實現Java語言中的if-else語句的功能。例如如下代碼根據username請求參數的值來打印不同的結果:
<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.
</c:otherwise>
</c:choose>
以上標簽等價於以下Java程序片段:
<%
String username=request.getParameter("username");
if(username==null){
out.print("UnKnown user.");
}else{
out.print(username + "is manager.");
}else{
out.print(username + "is employee.");
}
%>
<c:choose>、<c:when>、<c:otherwise>標簽的使用必須符合以下語法規則:
<c:when>和<c:otherwise>不能單獨使用,它們必須位於<c:choose>父標簽中。
在<c:choose>標簽中可以包含一個或多個<c:when>標簽。
在<c:choose>標簽中可以不包含<c:otherwise>標簽。
在<c:choose>標簽中如果同時包含<c:when>和<c:otherwise>標簽,那麽<c:otherwise>必須位於<c:when>標簽之後。
2.<c:forEach>標簽
(1)<c:forEach>標簽的基本語法為:
<c:forEach var="代表集合中的一個元素的命名變量的名字" items="集合">