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 某些版本對默認包支持不好,**強烈建議所有類放入具名包**。
com.公司.項目.module.action。struts.convention.package.locators 或註解 @Namespace、@Action 簡化配置。Struts2 無法識別無包名類,配置 class 屬性時必須填寫完整包路徑。養成「無包不寫代碼」習慣,避免此類低級錯誤。