【发布时间】:2011-07-12 23:52:35
【问题描述】:
我有一个使用 JSP 中的 JSTL/Struts2/DisplayTag 标记库的 Struts 2 应用程序。有没有办法在给定键的情况下访问 JSP 中 Map 的值?
// Action code
Map<String,String> map = new HashMap<String,String>();
mapOnValueStack = map;
//add key/value pairs
fieldKeyOnValueStack = "1";//sets key
....
<%-- JSP code --%>
<s:property value="%{mapOnValueStack.get(fieldKeyOnValueStack)}" />
基本上我想在 JSP 中进行地图访问。 这可能吗?
谢谢!
【问题讨论】:
-
%{ }事物(称为 OGNL)并非特定于 JSP/JSTL。它们特定于 Struts2。因此,对于非 Struts2 开发人员来说,这个问题非常令人困惑,因为“试试这个”的答案可能根本不正确。在普通 JSP 中,您将为此使用 EL${mapOnValueStack[fieldKeyOnValueStack]}。然而,您的代码示例并没有表明这些变量在普通 JSP EL 范围内可以作为${mapOnValueStack}和${fieldKeyOnValueStack}使用。 -
感谢您的 cmets,但我在问题中声明它是一个 Struts 2 应用程序,并且我正在使用 JSTL、Struts 2 和 Display Tag 库。那么,我假设任何回答这个问题的人都知道它们之间的区别。 '%{mapOnValueStack.get(fieldKeyOnValueStack)}' 仅在 Struts 2 标记内是正确的。这只是我试图表达的一个例子。