if标签有三个属性:test、var、scope
test属性是一个条件表达式,当表达式为真时,执行标签体
同时if标签还能将test表达式的结果写入到域中
var属性用来指定key,test表达式的结果为value
scope属性用来指定相应的域,默认存入page域中
当var属性被使用时,使用scope属性才有意义
当test表达式为真,执行标签体
<c:set var="username" value="zhangsan" />
<c:if test="${username=='zhangsan'}">
<h2>进入系统</h2>
<%
Integer num = 100;
num += 100;
%>
<%=num%> <br/>
${username} <br/>
</c:if>
当test条件表达式为假时不执行标签体
<c:if test="${1==2}">
I'am Student; <br/>
</c:if>
test表达式结果为假,不执行标签体
但使用了var属性,于是会将test表达式的结果存入域中,由于scope的值默认为page,所以会将t1=false存入page域中(无论test条件表达式为真还是为假,只要使用了var属性,那么就会将条件表达式的结果写入到域中)
<c:if test="1==2" var="t1">
I'am teacher; <br/>
</c:if>
${pageScope.t1} <br/>
test表达式结果为真,执行标签体
使用了var属性,将test表达式的结果存入request域中
<c:if test="${2==2}" var="t2" scope="request" >
I'am worker; <br/>
</c:if>
${requestScope.t2} <br/>