Java JSTL中的哈希映射密钥检查
需要帮助。我有一个从spring控制器返回到JSP的哈希映射。是否有一种方法可以检查某个键是否存在,而不考虑任何值(该值也可能为null) 例如,下面的哈希映射是从控制器发送的Java JSTL中的哈希映射密钥检查,java,jsp,jstl,Java,Jsp,Jstl,需要帮助。我有一个从spring控制器返回到JSP的哈希映射。是否有一种方法可以检查某个键是否存在,而不考虑任何值(该值也可能为null) 例如,下面的哈希映射是从控制器发送的 HashMap hmap = new HashMap(); hmap.put("COUNTRY", "X"); hmap.put("REGION", null); 如果键区域存在(值可以是包括null在内的任何值),则在jsp中显示某个部分 我正试图以${hmap['REGION']}的身份访问密钥 提前感谢。 <
HashMap hmap = new HashMap();
hmap.put("COUNTRY", "X");
hmap.put("REGION", null);
如果键区域存在(值可以是包括null在内的任何值),则在jsp中显示某个部分
我正试图以${hmap['REGION']}的身份访问密钥
提前感谢。
<c:forEach var="entry" items="${hmap }" varStatus="status">
<c:if test="${entry.key == 'REGION'}">
<tr>
<td>${entry.key}</td>
<td>${entry.value}</td>
</tr>
</c:if>
</c:forEach>
${entry.key}
${entry.value}
检查此项,如果此解决方案有效或无效?
如果不起作用,也可以发布JSP的jstl代码。尝试使用containsKey:
${hmap.containsKey('REGION')}
我知道您想测试值可能包含null的位置,但是有一个解决方案,使用
empty
运算符,当您可能还想排除null值时,它会非常优雅,因为如果值为null或不存在,它将计算为true
<c:if test="${not empty hmap['REGION']}">
<%-- conditional block --%>
</c:if>
谢谢,我正在尝试访问密钥,因为${hmap['REGION']}${hmap['REGION']}
应该可以使用。你是如何发送HashMap的,检查JSP上是否接收到HashMap?你到底为什么要使用循环?@EJP-我认为OP将迭代HashMap,如果条件匹配,它将显示数据,否则不会。这有什么奇怪的?在地球上还没有人在jstl中使用过循环吗?@user3145373ツ : 我在JSP中有映射的数据。我正在寻找一个检查,试图确定键是否存在。@Amz-为了调用映射的containsKey()或containsValue()方法,那么您需要确保运行的是与Servlet 3.0兼容的容器,如Tomcat 7、Glassfish 3、JBoss AS 6、,声明web.xml符合Servlet 3.0。通过这种方式,您可以利用新的EL 2.2特性:使用参数调用非getter方法taglib@EdgeCaseBerg嗯??法新社:康纳斯基?从未听说过这个JSTL函数!