[在JSTL中,我将HashMap作为页面变量。 HashMap将字符串映射到更复杂的对象。我想将值设置为null。所以我在尝试
value: ${myMap[myId]}
<c:set target="myMap" property="${myId}" value="${null}" />
我已验证“值:”语句确实打印出了一些内容,但是,出现以下JSTL错误
javax.servlet.jsp.JspTagException: Invalid property in <set>: "51b21a0410340adf6501db08"
任何想法如何将我地图中的特定条目设置为null?
您可以做:
value: ${myMap[myId]}
<c:set target="myMap" property="${myId}" value="" />
然后在以后的代码中,您可以使用以下命令测试它是否为空:
<c:if test="${myMap[myId] is empty}">
并且避免尝试处理JSTL中的“ null”。
((可能)更好的选择是将其从地图上完全删除:
<c:set var="debug" value="${myMap.remove(myId)}"/>
然后,您的空支票仍然有效,您不必在哈希图中的空条目周围乱写。
如果不是null
或为空,则显示该消息,然后将其设置为空字符串,类似
<div class="msg">
<c:if test = "${messages.un != null && !messages.un.isEmpty()}">
<span class="error">${messages.un}</span>
<c:set var="messages.un" scope="session" value=""/>
</c:if>
</div>