我有一个jsp,它接收(验证后)一个名为errorList的Map<String, Vector<ErrorMessage>>
。这包含页面上的每个属性的错误列表。同样的jsp也用于数据的初始输入,在这种情况下,不会有地图可用。EL空条件不能按预期工作
有,否则我创建了下面的表达式:
<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体。在rea在网页上的结果是“测试:”。这只是很荒谬。
也许不是一个不重要的事实。我使用谷歌应用程序引擎。
@JB Nizet。上面不是100%准确的代码。我目前没有我的代码,只是为了解释我的问题。 $ {errorList ['attributeName']} – Juru 2012-07-11 10:33:44
已将代码更改为实际代码。 – Juru 2012-07-11 10:58:40