java - 在 Struts 2 中使用 OGNL 检查 "top"值的成员资格

标签 java jsp struts2 ognl valuestack

我正在使用带有 JSP 模板和 Struts 2 标签的 Struts 2。有了这些,我似乎无法检查 HashMap 中某个值的成员资格。 .

map 设置正确,有一个List<Taxon>我正在迭代,我想检查该元素是否存在于我拥有的名为 synonyms 的 map 中这是类型 Map<Taxon, Taxon> .

当我查看 in 时运算符,我总是得到 false,即:

<s:if test="top in synonyms"> .... </s:if>

另一方面,这总是正确的:

<s:if test="synonyms[top] != null"> ... </s:if>

如果我执行以下操作,如果元素在 map 中,我会得到正确的值,如果不在 map 中,我会得到某种空值:

<s:property value="synonyms[top].name />

奇怪的是,如果taxon是我正在迭代的任何东西的属性(即我将它包装在另一个类中),然后检查 element != null 是否实际上工作正常。这是 OGNL 中的错误还是我做错了什么?

最佳答案

要检查您正在迭代的一个集合的元素是否包含在另一个集合中,通常使用 contains 方法。要通过 OGNL 使用调用它

<s:if test="synoynms.values.contains(top)"> 

<s:if test="synoynms.keys.contains(top)"> 

它将使用 Java 来确定 iterator 标记中的 top 元素是否属于集合。

关于java - 在 Struts 2 中使用 OGNL 检查 "top"值的成员资格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282262/

相关文章:

java - 在没有NetBeans的情况下启动Java DB服务器

java - 在 Java Web 应用程序中重新加载资源

linux - pdf = rs.getBytes ("pdf");它在 Windows 操作系统中不起作用。从 postgres bytea 字段读取二进制数据的替代方法是什么

java - 将 session ID 传递到 Struts 2 中的 URL JSP 页面

java - 在 Struts 2、Hibernate 中使用数据库值填充下拉列表

java - 从 NullPointerException 获取堆栈跟踪

java - 如何确保 ResultSet 包含 "missing"观察的行

java - 标签liferay-ui :include is missing on liferay 6. 2

java - PrintWriter 输出到 body 标记内的 jsp 页面

java - 如何在java中按列打印出来