У меня есть a Map
в бобе следующим образом:
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
вписывается ниже datastructure:
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}
. Почему это было бы? Как я получил бы доступ к отдельным элементам этой структуры, таким образом, я могу составить хорошую таблицу?
Каждая итерация карта
в C: foreach
дает , дает экземпляр map.centry
, который, в свою очередь, имеет GETHKEY ()
и GetValue ()
Методы. Это похоже на выполнение для (запись входа: map.entryset ())
в простых java.
E.G.
<c:forEach items="#{bean.map}" var="entry">
<h:outputText value="Key: #{entry.key}, Value: #{entry.value}" /><br />
</c:forEach>
В случае карта
# {intrue.value}
Возвращает карту
, так что вам нужно и повторить его:
<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>
, но в вашем случае # {NestedEndry.value}
на самом деле является строкой []
, Поэтому нам нужно повторить его снова:
<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>
кстати, это должно работать с , богатым: DataList
.