1異常
javax.servlet.jsp.JspException:Cannotretrievemappingforaction/Login(/Login是你的action名字)
可能原因:action沒有再struts-config.xml中定義,或沒有找到匹配的action,例如在JSP文件中使用
處理:如果出現上述異常,請查看struts-config.xml中的定義部分,有時可能是打錯了字符或者是某些不符合規則,可以使用strutsconsole工具來檢查。
2異常
org.apache.jasper.JasperException:Cannotretrievedefinitionforformbeannull
可能原因:這個異常是因為Struts根據struts-config.xml中的mapping沒有找到action期望的formbean。大部分的情況可能是因為在form-bean中設置的name屬性和action中設置的name屬性不匹配所致。換句話說,action和form都應該各自有一個name屬性,并且要精確匹配,包括大小寫。這個錯誤當沒有name屬性和action關聯時也會發生,如果沒有在action中指定name屬性,那么就沒有name屬性和action相關聯。當然當action制作某些控制時,譬如根據參數值跳轉到相應的jsp頁面,而不是處理表單數據,這是就不用name屬性,這也是action的使用方法之一。
3異常
Noactioninstanceforpath/xxxxcouldbecreated
可能原因
特別提示:因為有很多中情況會導致這個錯誤的發生,所以推薦大家調高你的web服務器的日志/調試級別,這樣可以從更多的信息中看到潛在的、在試圖創建action類時發生的錯誤,這個action類你已經在struts-config.xml中設置了關聯(即添加了標簽)。
在struts-config.xml中通過action標簽的class屬性指定的action類不能被找到有很多種原因,例如:
定位編譯后的.class文件失敗。Failuretoplacecompiled.classfilefortheactionintheclasspath(在web開發中,class的的位置在rWEB-INF/classes,所以你的actionclass必須要在這個目錄下。例如你的action類位于WEB-INF/classes/action/Login.class,那么在struts-config.xml中設置action的屬性type時就是action.Login).
拼寫錯誤,這個也時有發生,并且不易找到,特別注意第一個字母的大小寫和包的名稱。
在struts-config.xml中指定的action類沒有繼承自Stuts的Action類,或者你自定義的Action類沒有繼承自Struts提供的Action類。
你的action類必須繼承自Struts提供的Action類。
你的classpath的問題。例如webserver沒有發現你的資源文件,資源文件必須在WEB-INF/classes/目錄下。
4異常
javax.servlet.jsp.JspException:Nogettermethodforpropertyusernameofbeanorg.apache.struts.taglib.html.BEAN
可能原因
沒有位formbean中的某個變量定義getter方法
這個錯誤主要發生在表單提交的FormBean中,用struts標記
5Exceptionjavax.servlet.jsp.JspException:CannotfindActionMappingsorActionFormBeanscollection
可能原因
不是標識StrutsactionServlet的標記就是映射.do擴展名的標記或者兩者都沒有在web.xml中聲明。
在struts-config.xml中的打字或者拼寫錯誤也可導致這個異常的發生。例如缺少一個標記的關閉符號/>。最好使用strutsconsole工具檢查一下。
另外,load-on-startup必須在web.xml中聲明,這要么是一個空標記,要么指定一個數值,這個數值用來表servlet運行的優先級,數值越大優先級越低。
還有一個和使用load-on-startup有關的是使用Struts預編譯JSP文件時也可能導致這個異常。
6Exception
javax.servlet.jsp.JspException:Cannotfindbeanorg.apache.struts.taglib.html.BEANinanyscope
ProbableCauses
試圖在Struts的form標記外使用form的子元素。這常常發生在你在
后面使用Struts的html標記。
另外要注意可能你不經意使用的無主體的標記,如,這樣web服務器解析時就當作一個無主體的標記,隨后使用的所有標記都被認為是在這個標記之外的,如又使用了
還有就是在使用taglib引入HTML標記庫時,你使用的prefix的值不是html。
posted on 2007-02-08 11:14
水煮三國 閱讀(442)
評論(0) 編輯 收藏 所屬分類:
Struts