我有一个jsp,它接收(验证后)一个Map<String, Vector<ErrorMessage>>
称为errorList。这包含页面上的每个属性的错误列表。相同的 jsp 也用于数据的初始输入,在这种情况下,将没有可用的映射。
因此,我创建了以下表达式:
<c:if test="${not empty errorList}">
<div class="warningbox">
<div class="warning">
<c:forEach var="error" items="${errorList['PropertyAttribute.KIND']}"/>
test: ${error.errorMessage}
</c:forEach>
</div>
</div>
</c:if>
我期望的事情:
1.第一次填写表单时,errorList不存在(甚至通过检查request.getAttributeNames()来验证。因此不应该执行if主体。不是真的,实际上if主体是执行...为什么?
2.当Vector为空时,永远不应该执行forEach主体。实际上页面上的结果是“test:”。这简直是荒谬的。
也许不是一个不重要的事实。我使用谷歌应用引擎。