JSP頁面嵌套c:forEach


做java web項目有時候會需要在頁面使用嵌套<c:forEach>遍歷一個List,但是嵌套很容易忽略一些東西導致出錯

后台代碼:

List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
for (Map<String, Object> map : list) {
    List<Map<String, Object>> wordsList = new ArrayList<Map<String, Object>>();
    Map<String, Object> tmap = new HashMap<String, Object>();
    tmap.put("author", "author");
    tmap.put("sign", "sign");
    wordsList.add(tmap);
    map.put("wordsList", wordsList);
}
model.addAttribute("list", list);

這個時候list里面的每一個元素還包含一個wordsList,到頁面遍歷就需要用到嵌套<c:forEach>

JSP頁面代碼:

<c:forEach items="${list }" var="cl" varStatus="i">
            <c:forEach items="${cl.wordsList}" varStatus="i" var="wl">
                        <li>${wl.author }</li>
                        <li>${wl.sign }</li>
            </c:forEach>                    
</c:forEach>

在寫內層循環的時候很容易犯錯,寫成

<c:forEach items="${wordsList}" varStatus="i" var="wl">
      <li>${wl.author }</li>
      <li>${wl.sign }</li>
</c:forEach>

內層循環的items屬性需要帶上上層循環的var屬性值,必須寫成

<c:forEach items="${cl.wordsList}" varStatus="i" var="wl">
    <li>${wl.author }</li>
    <li>${wl.sign }</li>
</c:forEach>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM