如果我将某个对象存储为名为myObject的请求属性,我可以在JSP EL中找到它的类型:
${myObject['class']}
但如果我将java.util.Map
存储为请求属性myMap,我将其放在我的页面中......
${myMap['class']}
...在地图中搜索其键为“class”的条目。这是有道理的,否则我们永远无法从具有“类”键的Map中检索EL中的任何内容。
那么如何在EL语句中显示我的Map类型?
(大多数人都想问我:“你为什么关心?”。好吧,今天我在没有互联网连接的火车上工作,我不得不在页面中迭代一个java.util.HashMap
,我完全忘记了怎么做。所以,不能谷歌或者它,我决定找出类型是什么(我知道它不是一个真正的java.util.HashMap,Tomcat把它变成了别的东西所以我可以在Tomcat jar文件中搜索一下,看看它暴露了什么方法,也许我自己想出来。好吧,我无法通过EL找到类型。我在<% %>
标签中使用了嵌入式Java但是我一整天都在困扰着我,我不能单独找到EL。所以,这就是我关心的原因。它让我筋疲力尽。)
答案 0 :(得分:1)
如果您使用EL 2.2+,则只需使用:
${myMap.getClass()}
另一种可能性可能是写custom EL function或标签。在那里,您可以检查对象是否是java.util.AbstractMap
的实例。