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

Struts2 Action 映射錯誤:namespace 與 action 名稱配置修正

     編輯:程式設計綜合問答

錯誤信息

There is no Action mapped for namespace [/] and action name [user!add] associated with context path [/input].

原因

Struts2 約定:URL 格式為 /namespace/actionName.action (或無後綴)。錯誤中 action name [user!add] 表明請求 URL 為 /user!add,但 struts.xml 中未正確映射。

常見配置錯誤

  • package 的 namespace 屬性缺失或不匹配 (默認 /)。
  • action 的 name 屬性寫為 user,但請求用了 user!add (動態方法調用),需在 action 配置 method="{1}" 或使用通配符。
  • 動態方法調用 (!) 需在 struts.xml 啟用或配置 action name="user*" method="{1}"。

修正配置示例

<package name="default" namespace="/" extends="struts-default">
    <!-- 方式1: 通配符映射 user!add -> add 方法 -->
    <action name="user*" class="com.wxh.action.UserAction" method="{1}">
        <result name="success">/success.jsp</result>
    </action>

    <!-- 方式2: 顯式定義每個 action -->
    <action name="userAdd" class="com.wxh.action.UserAction" method="add">
        <result name="success">/success.jsp</result>
    </action>
</package>

驗證

瀏覽器訪問 https://host:port/input/user!add (方式1) 或 /input/userAdd (方式2) 應正常進入 add() 方法。

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