gpt4 book ai didi

jsp - 如何迭代 中的嵌套映射

转载 作者:行者123 更新时间:2023-12-04 05:27:32 25 4
gpt4 key购买 nike

我有一个 Map在一个 bean 中,如下所示:

public class TaskListData {
private Map<String, String[]> srcMasks = new HashMap<String, String[]>();
private Map<Integer, Map<String, String[]>> ftqSet = new HashMap<Integer, Map<String, String[]>>();

public void setFTQSet(Integer ftqid, String[] src, String[] masks) {
srcMasks.put("srcDir", src);
srcMasks.put("masks", masks);
ftqSet.put(ftqid, srcMasks);
}

ftqSet适合以下数据结构:
feedId = "5",
feedName = "myFeedName",
ftqSet => {
1 => {
srcDirs = ["/path/string"],
masks = ["p.txt", "q.csv"]
}
2 => { ...
}
}, ...

在我的测试 JSP 文件中,我一直试图使用 <c:forEach> 访问数据。 :
<c:forEach items="#{bean.ftqSet}" var="f">
this text does not print
${f.feedId}
</c:forEach>

但它没有输出 ${f.feedId} .为什么会这样?我将如何访问这个结构的各个元素,以便我可以创建一个漂亮的表格?

最佳答案

Map的每次迭代在 c:forEach给出 Map.Entry 实例依次具有 getKey() getValue() 方法。这类似于做 for (Entry entry : map.entrySet())在纯 Java 中。

例如。

<c:forEach items="#{bean.map}" var="entry">
<h:outputText value="Key: #{entry.key}, Value: #{entry.value}" /><br />
</c:forEach>

如果是 Map<Integer, Map<String, String[]>> #{entry.value}返回 Map<String, String[]> ,因此您还需要对其进行迭代:
<c:forEach items="#{bean.map}" var="entry">
<h:outputText value="Key: #{entry.key}, Values:" />
<c:forEach items="#{entry.value}" var="nestedentry">
<h:outputText value="Nested Key: #{nestedentry.key}, Nested Value: #{nestedentry.value}" />
</c:forEach><br />
</c:forEach>

但在你的情况下, #{nestedentry.value}实际上是 String[] ,所以我们需要再次迭代它:
<c:forEach items="#{bean.map}" var="entry">
<h:outputText value="Key: #{entry.key}, Values:" />
<c:forEach items="#{entry.value}" var="nestedentry">
<h:outputText value="Nested Key: #{nestedentry.key}, Nested Values: " />
<c:forEach items="#{nestedentry.value}" var="nestednestedentry">
<h:outputText value="#{nestednestedentry}" />
</c:forEach><br />
</c:forEach><br />
</c:forEach>

顺便说一句,这应该适用于 rich:dataList以及。

关于jsp - 如何迭代 <c :forEach> 中的嵌套映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2141464/

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