如何在JSTL中将此映射值设置为null?

时间:2015-05-27 18:58:51

标签: null hashmap jstl

在JSTL中,我将HashMap作为页面变量。 HashMap将字符串映射到更复杂的对象。我想将值设置为null。所以我正在尝试

value: ${myMap[myId]} 
<c:set target="myMap" property="${myId}" value="${null}" />

我已经验证了&#34;值:&#34;语句确实打印出来,但是,我收到以下JSTL错误

javax.servlet.jsp.JspTagException: Invalid property in &lt;set&gt;:  "51b21a0410340adf6501db08"

如何将地图中的特定条目设置为null?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

value: ${myMap[myId]} 
<c:set target="myMap" property="${myId}" value="" />

然后在以后的代码中,您可以测试它是否为空:

<c:if test="${myMap[myId] is empty}">

并避免尝试处理&#34; null&#34;在JSTL。

(可能)更好的选择是将其从地图中完全删除:

<c:set var="debug" value="${myMap.remove(myId)}"/>

然后您的空检查仍然有效,您不必在散列图中包含空条目。