Java 从JSP页面中的HashMap获取URL值(使用Struts2)

Java 从JSP页面中的HashMap获取URL值(使用Struts2),java,jsp,struts2,hashmap,Java,Jsp,Struts2,Hashmap,我试图让我的页面链接到存储在HashMap中的某个URL(键是某个名称,值是我要链接到的URL)。我不太擅长描述这一点,但以下是我的代码: 对于JSP页面: <table> <s:iterator value="dependenciesList" id="dependency"> <tr><td> <a href="<s:url value="productDocumentationMap.getKey(%{depe

我试图让我的页面链接到存储在HashMap中的某个URL(键是某个名称,值是我要链接到的URL)。我不太擅长描述这一点,但以下是我的代码:

对于JSP页面:

<table>
  <s:iterator value="dependenciesList" id="dependency">
    <tr><td>
    <a href="<s:url value="productDocumentationMap.getKey(%{dependency})"/>">
    <s:property value="dependency"/> </a>
    </td></tr>
  </s:iterator> 
  </table>

注意:productDocumentationMap是
的哈希映射,dependenciesList是
数组列表

例如,如果dependenciesList包含三个元素[A、B、C],则第一个链接将链接到如下内容:http:///productDocumentationMap.getKey(A) 但我想要的是链接是

productDocumentationMap.getKey(“A”)


我知道我可能在做一些愚蠢的事情(我对Struts2这个行业还是新手),但有没有办法让我的链接工作?谢谢

在OGNL中,您可以使用“mapName[indexName]”访问地图,其中indexName是您想要的键

e、 g


关于你的后续问题:

我使用它来测试简单属性的空值,包括一个节。我想它可能会应用于映射返回的值

<s:if test="%{licenseStatusString != null}">
 ... something that uses licenseStatusString
</s:if>
<s:else>
 ... optional thing to include if the license status string is null.
</s:else>

... 使用licenseStatusString的东西
... 如果许可证状态字符串为空,则包含可选内容。
也许吧

<s:if test="%{productDocumentationMap[#dependency] != null}">


试试看它是否有效。可能是其中的一些排列。

非常感谢,这对我很有用!另一方面,您是否知道只有在productDocumentationMap.get(dependency)返回非空值时才创建链接?有些产品没有任何链接,所以我不想创建指向不存在页面的超链接。谢谢!将注释移动到我的原始答案中以保留格式我最终使用了以下内容:(显然,即使映射中没有值,它也不会返回null,但它确实返回空字符串)非常感谢,你是一个救命恩人!不客气。我的知识是从别人那里偷来的,真的。Struts 2被推到我身上时,我买了这本书,它让一切都不同了。:-)
<s:if test="%{productDocumentationMap[#dependency] != null}">