![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
jstl 中<c:if test="${判断条件}">与<c:when test="${判断条件}">有什么区别吗?
一、判断选择不同
if进行单一的判断,而when用在<c:choose>中,可以进行多个条件选择。
二、用途不同
if判断为true时,执行<c:if>...</c:if> 中的语句,但其没有配对的else。
when用在<c:choose>中,可以进行多个条件选择,有else语句,即otherwise。
三、用法不同
1、只用if: <c:if> 用于实现 java 中的 if 语句功能。
<c:if test="${'<%=imgstr%>'==null}">
Print this sentence .
</c:if>
若为 true ,会打印中间部分。也可以声明 var ,方便下一步判断。
<c:iftest="${'<%=imgstr%>'==null}" value=”result”/>
<c:out value=”${result}” />
2、<c:choose> 和 <c:when> 、 <c:otherwise> 一起实现互斥条件执行,类似于 java 中的 if else.
<c:choose> 一般作为 <c:when> 、 <c:otherwise> 的父标签。
<c:choose>
<c:when test="${'<%=imgstr%>'==null}">
<img src="person/images/默认头像.png" id="img3"/>
</c:when>
<c:otherwise>
<img src="<%=imgstr%>" id="img4"/>
</c:otherwise>
</c:choose>