1. 程式人生 > >IT兄弟連 JavaWeb教程 JSTL常用標簽

IT兄弟連 JavaWeb教程 JSTL常用標簽

pri 一個 設定 javax 規則 如果 最後一個元素 通過 循環

1.條件標簽

條件標簽能夠實現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="集合">