gpt4 book ai didi

java - 比较 jSTL 1.2 中的 ArrayList 字符串元素

转载 作者:太空宇宙 更新时间:2023-11-04 06:42:28 24 4
gpt4 key购买 nike

我正在尝试创建一个表,其中当“键”等于“名称”时,该值是到另一个页面的链接,否则它应该将该值打印为文本。我有以下键:[名称、类别、架构]。这是一个数组列表

<c:when test='#{(results.keys.get(loopVal.index)).equals("name")}'>

在我的表中,“名称”列应该具有作为链接的值。但它不起作用,就好像 c:when 返回 false 一样。但我检查了“results.keys.get(loopVal.index)”并且它正确打印了键。

我尝试过与 equals()、== 和 eq 进行比较。我还有正确的 jSTL 库 xmlns:c="http://java.sun.com/jsp/jSTL/core"

我找不到问题所在,也许它与比较列表元素有关?或者我忽略了一些非常明显的事情?

这是我的代码的较大片段:

<ui:repeat value="#{results.keys}" var="key" varStatus="loopVal">
<td id="#{results.keys.get(loopVal.index)}_#{instance.getId()}" class="view">
<c:choose>
<c:when test='#{(results.keys.get(loopVal.index)).equals("name")}'>
<h:link value="#{values.get(loopVal.index)}" outcome="search">
<f:param name="type" value="#{values.get(loopVal.index)}" />
</h:link>
</c:when>
<c:otherwise>
#{values.get(loopVal.index)}
</c:otherwise>
</c:choose>
</td>
</ui:repeat>

最佳答案

您应该使用c:forEach而不是ui:repeat:

<c:forEach items="#{results.keys}" var="key" varStatus="loopVal">
...
</c:forEach>

看看this post BalusC 介绍了标记处理程序(如 c:forEach)和普通 JSF 组件(如 ui:repeat)之间的区别。

关于java - 比较 jSTL 1.2 中的 ArrayList 字符串元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com