У меня были проблемы при попытке получить значения из treeMap, который содержится в течение некоторого времени.Я испробовал несколько различных способов доступа к данным, но JSP дал понять, что JSP должен признать наличие карты хэша или дерева, но на самом деле не перебирать ее и возвращать данные.
Я пытался найти лучший способ в основном сортировать результаты XML на основе атрибута тега.Поэтому я беру xml и помещаю значения каждого в bean-компонент, затем беру, затем помещаю bean-компоненты в древовидную карту, где Key = SortId.Поскольку treema автоматически сортирует результат, это отсортированная карта значений XML.Популяция bean и treeMap работает отлично, проблема заключается в том, чтобы просто вытянуть эти значения в JSP
Что ж, возможно, лучшая иллюстрация моей результирующей карты поможет, по крайней мере, понять смысл того, что я пытаюсь получить,Цель состоит в том, чтобы перебрать недавно упорядоченный список и заполнить мои элементы div чем-то вроде
<div>
Name: ${tileName} <br />
Description: ${tileDescrip} <br />
<img scr="${imagePath}">
</div>
, получившаяся карта дерева выглядит следующим образом
sortedHash
{0, bean(tileName,tiledescrip,imagePath)}
{1, bean(tileName,tiledescrip,imagePath)}
{2, bean(tileName,tiledescrip,imagePath)}
Myпроблема заключается в том, что с помощью приведенного выше кода я не получаю никаких значений, возвращаемых даже из итерации первого уровня карты, даже если вывод самой карты действительно показывает ее там в
sortedHash = CTTeamsiteXMLHash@135b24b
, поэтому поток псевдочто я делаю
Read XML
- Iterate
-Parse XML Values to bean
-Place bean in Treemap<SortId, XML-Bean>
-Return TreeMap
-Loop through treemap and then pull each bean value out.
Вот пример XML
<teaser>
<sort>1</sort>
<value1></value1>
<value2></value2>
</teaser>
Мой компонент
public class CTTeamsiteXMLHash {
private HashMap<String, Object> xmlHash;
private TreeMap<String, Object> sortedHash;
public TreeMap<String, Object> getSortedHash() {
return sortedHash;
}
public void setSortedHash(TreeMap<String, Object> sortedHash) {
this.sortedHash = sortedHash;
}
public void setXmlHash(String sortOrder, CTTeamsiteXMLBean bean) {
getXmlHash().put(sortOrder, bean);
}
public HashMap<String, Object> getXmlHash() {
return xmlHash;
}
Вот моя неудачная попытка доступа из JSP.если это помогает, я передаю sortedHash в запросе
<jsp:useBean id="sortedHash" class="CTTeamsiteXMLHash"
scope="request"/>
<c:forEach items="${sortedHash.sortedHash}"
var="eachItem">
<c:forEach items="${eachItem.value}"
var="anItem">
<c:out value="${anItem.tileName.value}" /> :
<c:out
value="${anItem.tileDescrip.value}" />
</c:forEach>
</c:forEach>