3 回答
TA貢獻1801條經驗 獲得超8個贊
與以下問題有關的問題:沒有為與上下文路徑關聯的名稱空間和操作名稱映射任何操作
如果使用url調用動作,請確保此url映射到struts配置。要解決網址映射問題,可以使用config-browser插件。只需將此插件添加到您的項目依賴項中,并在部署它后,就可以訪問一個顯示運行時配置的網站,并提供可用的URL來調用該操作。例如,如果您在本地8080端口上運行Tomcat,并在上部署了應用程序context,則可以使用以下命令訪問插件的url
http://localhost:8080/[context]/config-browser/index.action
您可以在側邊欄名稱空間下的操作頁面上單擊任何可用的操作。另請注意,如果在包裝上找不到您的操作,則可能在default包裝中。Struts在default名稱空間中進行其他搜索,以查找不在URL映射的名稱空間中的操作。
查看config-browser插件以調試配置問題。
要將URL正確映射到操作,需要兩個參數:操作名稱和名稱空間。
Struts在啟動時會加載xml配置,并且應該知道的位置struts.xml。默認情況下,它會在classpath上查找具有類似的已知名稱的文件struts.xml。然后,它解析文檔并創建運行時配置。這種配置用于查找操作URL適當的配置元素。如果在請求期間未找到此類元素,則返回404錯誤代碼,并顯示以下消息:There is no Action mapped for namespace and action
name。
此外,此消息還包含用于查找操作配置的名稱空間和操作名稱。然后,您可以檢查您的配置設置 struts.xml。有時動作名稱和命名空間,存儲在 ActionMapping指向錯誤的行動。這些值ActionMapper由插件所使用的實現方式可能有所不同。
還有另一個設置可能會影響此映射器和映射,但是要點是相同的,如果您收到此消息,則使用URL不會在運行時配置中映射任何操作配置。如果您不知道應該使用哪個URL,則可以嘗試使用 config-browser插件查看可用的URL列表。
TA貢獻1906條經驗 獲得超3個贊
檢查struts.xml中是否存在常量struts.action.excludePattern,并且是否存在用于登錄的條目。就我而言,這是造成問題的原因。如果您要在基于struts2的應用程序中進行servlet調用,則此方法適用
添加回答
舉報
