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

Struts2 namespace 配置導致「No Action mapped」?namespace 必須與請求 URL 前綴精確對應

     編輯:程式設計綜合問答

報錯:Could not execute action: /searc/showAction!load ... namespace /searc and action name showAction。原因在於 `struts.xml` 中 `` 與實際請求路徑不匹配。

核心規則

  • 請求 URL:`https://host/app/searc/showAction!load`
  • Struts 解析:`namespace=/searc`、`actionName=showAction`、`method=load`
  • 配置必須:`` 且 ``

常見錯誤

錯誤寫法正確寫法說明
`namespace="/search"``namespace="/searc"`拼寫必須與 URL 完全一致
無 `namespace` 屬性`namespace="/"`默認根命名空間
```` + 方法攔截動態方法調用用 `!`,配置時只寫 action 名

修正範例

<package name="search" namespace="/searc" extends="struts-default">
    <action name="showAction" class="com.example.ShowAction">
        <result name="success">/jsp/result.jsp</result>
    </action>
</package>

調試技巧

  1. 開啟 Struts 配置瀏覽插件(`struts-config-browser-plugin`),訪問 `https://host/app/config-browser/index.action` 直觀查看所有 namespace/action 映射。
  2. 檢查 `web.xml` 中 `FilterDispatcher`/`StrutsPrepareAndExecuteFilter` 的 `url-pattern` 是否為 `/*`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved