首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

SSM 框架 JSTL 遍歷 List 報「找不到欄位」錯誤:變數名衝突解決方案

     編輯:程式設計疑難解答

錯誤原因

JSP 中 <c:forEach items="${list}" var="list"> 將迴圈變數命名為 list,與外層傳遞的 List 集合同名,導致 ${list.content} 實際訪問的是迴圈當前元素(若元素無 content 屬性則報錯),而非原本的集合。

解決方法

修改 var 屬性為不衝突的名稱,例如 item 或 article:

<c:forEach items="${list}" var="article">
    <tr>
        <th><c:out value="${article.content}" /></th>
        <th><c:out value="${article.name}" /></th>
        <th><c:out value="${article.comment}" /></th>
        <th><c:out value="${article.type}" /></th>
        <th><a href="#">轉發</a></th>
    </tr>
</c:forEach>

最佳實踐建議

  • 後端傳遞集合時使用具體語意名稱(如 articleList)。
  • 迴圈變數使用單數形式(article、user),提升可讀性。
  • 避免在同一作用域使用相同變數名稱。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved