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

Struts2 表單提交到 Action 實體屬性為空:struts.xml 配置與模型驅動檢查

     編輯:程式設計綜合問答

現象

登錄表單提交後,Action 中 user 實體屬性為 null,導致 user.getUsername() 拋出空指針異常。

排查清單

  1. struts.xml 中 Action 配置:確認 class 指向正確的 Action 類,且包含 <result name="success">/result.jsp</result>。
  2. 模型驅動接口:若 Action 實現 ModelDriven<User>,需重寫 getModel() 返回實例化的 User 對象,且 User 必須有無參構造函數。
    public class LoginAction extends ActionSupport implements ModelDriven {
        private User user = new User();
        public User getModel() { return user; }
        // ...
    }
  3. 表單字段名稱:JSP 中 <s:textfield name="user.username" /> 對應 User 的 username 屬性,OGNL 表達式正確。
  4. Getter/Setter:Action 中需提供 getUser()/setUser() (非模型驅動模式) 或確保 ModelDriven 正確實現。

常見錯誤

代碼中 public User getUser(User user) 參數錯誤,應為 public User getUser()。

調試技巧

  • 在 Action execute() 首行打印 user 對象。
  • 啟用 Struts2 開發模式 (struts.devMode=true) 查看詳細錯誤堆棧。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved