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

Struts2 Action 類未放在包下導致空指針:默認包名不可省略

     編輯:程式設計疑難解答

問題現象

Struts2 配置文件中 Action 類寫為 class="UserAction"(無包名),啟動報空指針異常。

根本原因

Struts2 掃描/實例化 Action 時,類全限定名必須包含包名。即使類位於默認包(無 package 語句),也不能在配置中省略包名,否則框架無法定位類,導致 ClassNotFoundException 或后續空指針。

正確配置

<!-- struts.xml -->
<action name="login" class="com.example.action.UserAction">  <!-- 必須寫全限定名 -->
    <result name="success">/welcome.jsp</result>
</action>

若類確實在默認包(不推薦),仍需寫 class="UserAction",但 Struts2 某些版本對默認包支持不好,**強烈建議所有類放入具名包**。

最佳實踐

  • 遵循 Java 命名規範:com.公司.項目.module.action。
  • 使用 struts.convention.package.locators 或註解 @Namespace、@Action 簡化配置。
  • 啟動時檢查控制台日志,確認 Action 類被正確加載。

總結

Struts2 無法識別無包名類,配置 class 屬性時必須填寫完整包路徑。養成「無包不寫代碼」習慣,避免此類低級錯誤。

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