例如,如果在jsp中我们放了:
<c:choose>
<c:when test="${missingAttribute}">
...do something
</c:when>
<c:otherwise>
...something else
</c:otherwise>
</c:choose>
如果'missingAttribute'不存在,是否会始终执行其他块?换句话说,缺少属性评估为false?
答案 0 :(得分:0)
是的,它会评估为假。根据TLD中定义的属性类型类别,对属性值中指定的EL表达式进行不同的处理。在标记时的核心,它应该评估为布尔值。在核心输出标签到String等,
在你的场景中,你需要有c:选择包含c:when和c:否则的标签。
<c:if test="${somecondition}">
<c:choose>
<c:when test="${missingAttribute}">
...do something
</c:when>
<c:otherwise>
...something else
</c:otherwise>
</c:choose>
</c:if>
c:否则仅在所有c:条件被评估为&#39; false&#39;时运行。
答案 1 :(得分:0)
如果missingAttribute是一个收集列表或在这种情况下设置的,则需要检查它是否为空或test =“ $ {not empty missingAttribute}”,否则,如果设置了该属性,则它将显示错误“对列表进行布尔测试” “。