3 回答

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

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊
檢查struts.xml中是否存在常量struts.action.excludePattern,并且是否存在用于登錄的條目。就我而言,這是造成問題的原因。如果您要在基于struts2的應(yīng)用程序中進(jìn)行servlet調(diào)用,則此方法適用
添加回答
舉報