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

SSH 框架 JSP 提交空指針異常:表單數據未綁定到 Action 的排查步驟

     編輯:程式設計綜合問答

現象

JSP 表單提交至 Struts2 Action 的 save() 方法,屬性對象為 null 拋出 NPE。

排查清單

  1. 檢查表單字段名與 Action 屬性一致:
    <input name="user.name" /> 對應 Action 中 User user 及 getUser()/setUser()。
  2. 確認 struts.xml 配置攔截器棧:必須包含 params 攔截器(默認 defaultStack 已含)。
  3. 啟用開發模式查看參數映射:
    <constant name="struts.devMode" value="true" />,控制台輸出 Setting property 'user.name' to 'xxx' 日誌。
  4. 斷點調試:在 save() 入口斷點,觀察 user 對象是否已注入。
  5. 檢查 prepare() 方法:若實現 Preparable 接口,prepare() 中初始化對象可能覆蓋參數注入結果。

常見錯誤示例


// 錯誤:prepare 中 new 覆蓋了 params 注入的對象
public void prepare() {
    this.user = new User(); // 導致表單數據丟失
}
// 正確:僅在 user 為 null 時初始化
public void prepare() {
    if (this.user == null) this.user = new User();
}

快速定位技巧

在 JSP 頁面加入 <s:debug></s:debug> 或臨時在 Action 打印 System.out.println("user=" + user),確認數據流向。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved