語法
語法1:沒有本體內容(body)
<c:if test="testCondition" var="varName" [scope="{page|request|session|application}"]/>
語法2:有本體內容
<c:if test="testCondition" [var="varName"] [scope="{page|request|session|application}"]>
本體內容
</c:if>
屬性
名 稱
說 明
EL
類 型
必 須
默認值
test
如果表達式的結果為true,則執行本體內容,false則相反
Y
boolean
是
無
var
用來儲存test運算後的結果,即true或false
N
String
否
無
scope
var變數的JSP範圍
N
String
否
page
說明
<c:if> 標籤必須要有test屬性,當test中的表達式結果為true時,則會執行本體內容;如果為false,則不會執行。例如:${param.username = = 'admin'},如果param.username等admin時,結果為true;若它的內容不等於admin時,則為false。
於
接下來看下列的範例:
<c:if test="${param.username = = 'admin' }">
ADMIN您好!! //body部分
</c:if>
如果名稱等於admin,則會顯示"ADMIN您好!! "的動作,如果相反,則不會執行<c:if>的body部分,所以不會顯示"ADMIN您好!! //body部分"。另外<c:if>的本體內容除了能放純文字,還可以放任何JSP程式代碼(Scriptlet)、JSP 標籤或者HTML碼。
除了test屬性之外,<c:if>還有另外兩個屬性var和scope。當我們執行<c:if>的時候,可以將這次判斷後的結果存放到屬性var里;scope則是設定var的屬性範圍。哪些情況才會用到var和scope這兩個屬性呢?例如:當表達式過長時,我們會希望拆開處理,或是之後還須使用此結果時,也可以用它先將結果暫時保留,以便日後使用。
範例
筆者寫了一個簡單的範例,名稱為Core_if.jsp。
Core_if.jsp
<%@ page contentType="text/html;charset=GB2312 " %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
<title>CH7 - Core_if.jsp</title>
</head>
<body>
<h2><c:out value="<c:if> 的用法" /></h2>
<c:if test="${param.username == 'Admin'}" var="condition" scope="page">
您好Admin先生
</c:if></br>
執行結果為: $
</body>
</html>
筆者在判斷用戶送來的參數時,如果username的值等於Admin時,則會將condition設為true並存放於pageScope中,否則存放於condition中,最後再顯示結果。因為JSTL會自動找尋condition所存在的屬性範圍,因此只須使用 $,而不用 ${pageScope.condition}。Core_if.jsp的執行結果如圖7-7。
注意
執行本範例時,請在Core_if.jsp後加上?username=Admin。
相關詞條
-
<c:if>
c:if< scope=""page""
-
<c:if>
是計算機運算符。使用時需要在使用它的jsp頁面中引入。
語法 運算符 用法 -
21天學通Java Web開發
基本信息叢書名: 21天學編程系列頁碼:411版次:2-1內容簡介《21天學通java web開發(第2版)(含dvd光碟1張)...
基本信息 內容簡介 編輯推薦 本書特色 目錄 -
JSP套用開發與實踐
1.1 網路程式開發體系結構 11.1.1 C/S結構介紹 1...
人民郵電出版社教材 內容提要 目錄 -
STAF
都很容易使用,包括Java,C/C++,Rexx,Perl,TCL... TODIRECTORY C:/STAF TOMACHI ...
一、定義 二、技術特點 三、Services (服務) 四、請求/訪問格式 五、STAX