[英]Issue in iterating with struts2 tags
我是struts2的新手,在迭代List。時遇到問題。我無法使用struts 2迭代器標簽迭代以下代碼並在表中顯示。
List<QueryResult> queryResults = queriesresult.getQueryResult();
for (QueryResult q_list : queryResults) {
List<LinkedHashMap> list_Cols = q_list.getRows();
for (LinkedHashMap<Object, Object> map : list_Cols) {
for (Map.Entry<Object, Object> entry : map.entrySet()) {
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println("Hello Col:" + key);
System.out.println("Hello Rows:" + value);
}
}
}
我正在暴露queryResults,在JSP中,我嘗試過:
<s:iterator value="queryResults" id="qr">
<s:iterator value="qr.rows" id="keyrow">
<s:iterator value="keyrow"> <table><tr><td>
<s:property value="key" />
<s:property value="value" /> </table></tr></td>
</s:iterator>
</s:iterator>
</s:iterator>
這是我嘗試迭代的方法,但並非迭代。
嘗試這個。
<s:iterator value="queryResults" id="qr"> <s:iterator value="qr.rows" id="keyrow">
Value : <s:property value="keyrow['<<key>>']"/>
</s:iterator>
</s:iterator>
可以使用格式mapName ['key']訪問地圖值。
對於Struts 2.1+,應使用var
定義每個迭代對象的名稱,而不是id
。
最里面的<s:iterator>
標記應該遍歷keyrow
而不是 keyrow.entrySet
。
除此之外,它是多余的(地圖迭代器已經在地圖的入口集上進行迭代),在OGNL中,它將尋找一個名為entrySet
的屬性-但這不是地圖的屬性 ,而是一個方法 : keyrow.entrySet()
。 但是無論如何都沒有必要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.