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

Struts2 JSP 中 變量為空導致 pageContext.getAttribute 空指針異常

     編輯:程式設計綜合問答

現象

JSP 中 <s:set var="file" value="mailInfoFB.file" />,後用 pageContext.getAttribute("file") 獲取並 .split(","),無附件時拋出空指針。

原因

mailInfoFB.file 為 null 時,<s:set> 將 var="file" 設置為 null (或不設置)。隨後 pageContext.getAttribute("file") 返回 null,調用 null.split(...) 導致 NPE。

修正方案

  1. JSP 中判空:
<c:if test="${not empty file}">
    <% String[] fileName = ((String)pageContext.getAttribute("file")).split(","); %>
    ...
</c:if>
  1. 後端預處理:Action 中確保 mailInfoFB.file 為空字符串 "" 而非 null,或直接提供 fileNameList 集合屬性供 JSP 直接迭代。

最佳實踐

  • 避免在 JSP 中混用 Scriptlet (<% %>) 與標簽庫,邏輯前移至 Action/Service。
  • 使用 <c:forEach items="${fileNameList}" var="fn"> 直接遍歷,無需手動 split。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved