如何在表达式语言(EL)中显示地图的类别?

时间:2013-04-10 15:47:38

标签: jsp el

如果我将某个对象存储为名为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。所以,这就是我关心的原因。它让我筋疲力尽。)

1 个答案:

答案 0 :(得分:1)

如果您使用EL 2.2+,则只需使用:

${myMap.getClass()}

另一种可能性可能是写custom EL function或标签。在那里,您可以检查对象是否是java.util.AbstractMap的实例。