使用Struts 2访问HashMap

时间:2010-10-23 06:33:35

标签: struts2 hashmap

我有使用struts2 <s:set>标记在页面上创建的hashmap。它看起来像这样

<s:set var="mymap" value="#request.mymap"/>

在页面的某个时刻,我需要根据一个键从hashmap中获取一个值,我想用OGNL来做。

密钥是根据某些逻辑生成的,我使用另一个<s:set>标记存储该逻辑。像这样的东西

<s:set var="mykey" value="1">

我需要使用此键从hashmap中获取值。我需要显示它。

如何在hashmap上调用get函数?

我试过这个

<s:property value="#mymap[#mykey]"/>

和这个

<s:property value="#mymap[%{#mykey}]"/>

和这个

<s:property value="%{#mymap[%{#mykey}}]"/>

由于嵌套问题,第三个显然不起作用 但是由于处理value属性的方式,相同的嵌套逻辑也适用于第二种情况。但似乎没有一个对我有用。

这里的问题是我的钥匙未知。它是基于某种模式的动态生成的字符串。我需要使用此动态密钥访问存储在hashmap中的对象。由于无法嵌套,我处于修复阶段。

我想问题很简单。我几乎觉得我明白了,但不知怎的,解决方案让我不知所措。

1 个答案:

答案 0 :(得分:3)

我想我使用的是不同版本的struts,其中使用%{}是要评估的表达式。我现在改变了jar文件。 这就是我的工作:

<s:property value="#mymap.[#mykey2]"/>

我的问题出现了,因为我试图在href中使用它来获取s:标签。如果没有%{}运算符,则表达式未被评估。

所以,我想,我一开始就是对的。剩下的时间,只是我很傻。产品:&gt;

<强>更新 我写了一篇关于这个问题的博客文章,以防有人感兴趣。 http://mycodefixes.blogspot.com/2010/11/struts-2-creating-and-accessing-maps.html