<c:if>

王朝百科·作者佚名  2010-02-15  
宽屏版  字体:   |    |    |  超大  

<c:if>

<c:if>的用途就和我们一般在程序中用的if一样。

语法

语法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>

执行结果为: ${condition}

</body>

</html>

笔者在判断用户送来的参数时,如果username的值等于Admin时,则会将condition设为true并存放于pageScope中,否则存放于condition中,最后再显示结果。因为JSTL会自动找寻condition所存在的属性范围,因此只须使用 ${condition},而不用 ${pageScope.condition}。Core_if.jsp的执行结果如图7-7。

注意

执行本范例时,请在Core_if.jsp后加上?username=Admin。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝百科 版权所有