程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Struts常見錯誤及原因分析

Struts常見錯誤及原因分析

編輯:JAVA編程入門知識

1異常
  Javax.servlet.jsp.JspException:Cannotretrievemappingforaction/Login(/Login是你的action名字)

可能原因:action沒有再struts-config.XML中定義,或沒有找到匹配的action,例如在JSP文件中使用<?XML:NAMESPACE PREFIX = Html />

處理:假如出現上述異常,請查看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標記時,在FormBean中必須有一個getUsername()方法。注重字母“U”。

5Exceptionjavax.servlet.jsp.JspException:CannotfindActionMappingsorActionFormBeanscollection


 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved