簡體   English   中英

使用struts2標簽進行迭代的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM