一個很怪的問題。
控制檯異常:
[org.apache.struts2.dispatcher.Dispatcher]-[WARN] Could not find action or result
There is no Action mapped for namespace /jsp/schedule and action name addMynoteAction. - [unknown location]
這是struts.xml文件Action的配置:java
<!-- 查詢個人便籤列表 --> <action name="findMynoteListAction" class="mynoteAction" method="findMynoteList"> <result name="success" >/jsp/schedule/myNoteList.jsp</result> </action> <!-- 添加便籤【只有這個Action找不到】 --> <action name="addMynoteAction" class="mynoteAction" method="addMynote"> <result type="redirectAction">findMynoteListAction</result> <result name="input">/jsp/schedule/myNoteAdd.jsp</result> </action> <!-- 刪除便籤 --> <action name="deleteMynoteAction" class="mynoteAction" method="deleteMynote"> <result type="redirectAction" >findMynoteListAction</result> </action> <!-- 根據ID查詢便籤 --> <action name="findMynoteByIdAction" class="mynoteAction" method="findMynoteById"> <result name="success" >/jsp/schedule/myNoteUpdate.jsp</result> <result name="error" type="redirectAction">findMynoteListAction</result> </action> <!-- 更新便籤 --> <action name="updateMynoteAction" class="mynoteAction" method="updateMynote"> <result name="success" type="redirectAction">findMynoteListAction</result> <result name="input" type="redirectAction" >findMynoteByIdAction</result> </action>
這是struts.xml文件package聲明:
apache
<package name="default" extends="struts-default" namespace="/">
這是jsp頁面form表單調用Action的代碼:用的是絕對路徑
app
<form name="form1" method="post" action="${basepath}addMynoteAction.action">
配置文件中寫的都同樣,只是name不同,頁面調用的方法都同樣,全部頁面也在同一個文件夾下,但是根本就找不到調用的這個Action,寫的是絕對路徑啊,除了增長(addMynoteAction),其餘功能都沒問題。jsp
我把struts.xml文件中namespace="/"屬性去掉後,就不報404錯誤了,全部功能都實現了,但是。。增長成功返回到列表頁面時,圖片都顯示不出來了。。其餘功能刪除修改等完成後返回列表圖片都正常啊。頁面圖片用的都是絕對路徑。post
後來我又把namespace="/"加上,發現別的頁面調用這個addMynoteAction都沒問題,惟獨這個頁面調用哪一個Action都錯誤,我又從新建了新頁面,忘記了刪除jsp頁面開頭的spa
<base href="<%=basePath%>">,居然不報錯了,我習慣新建頁面後把這句刪了,由於之前作項目時,加上這句就code
錯。orm
雖然項目不報錯了,但是我仍是不明白,別的頁面、修改查詢等頁面都沒有這句<base href="<%=basePath%>">,我習慣都用絕對路徑,但是爲何別的頁面沒有這句就不報錯,惟獨這個增長xml
數據的頁面沒有這句就報錯?這個模塊全部頁面都在一個文件夾裏同一路徑下。圖片