異常
javax。servlet。jsp。JspException: Missing message for key xx。xx。xx
Probable Causes
這個key的值對沒有在資源文件ApplicationResources。properties中定義。如果你使用eclipse時經常碰到這樣的情況,當項目重新編譯時,eclipse會自動將classes目錄下的資源文件刪除。
資源文件ApplicationResources。properties 不在classpath中應將資源文件放到 WEBINF/classes 目錄下,當然要在strutsconfig。xml中定義)
異常
Cannot find message resources under key org。apache。struts。action。MESSAGE
可能原因
很顯然,這個錯誤是發生在使用資源文件時,而Struts沒有找到資源文件。
Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body this assumes options are specified in ApplicationResources。properties file)
XML parser issues too many, too few, incorrect/incompatible versions
異常
Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet。
可能原因
混和使用Struts的html:form標記和標準的HTML標記不正確。
使用的編碼樣式在本頁中不支持。
異常
"Document contained no data" in Netscape
No data rendered (completely empty) page in Microsoft Internet Explorer
可能原因
使用一個Action的派生類而沒有實現perform()方法或execute()方法。在Struts1。0中實現的是perform()方法,在Struts1。1中實現的是execute()方法,但Struts1。1向后兼容perform()方法。但你使用Struts1。1創建一個Action的派生類,并且實現了execute()方法,而你在Struts1。0中運行的話,就會得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer。”的錯誤信息。
異常
ServletException: BeanUtils。populate
解決方案
在用Struts上傳文件時,遇到了javax。servlet。ServletException: BeanUtils。populate異常。
我的ActionServlet并沒有用到BeanUtils這些工具類。后來仔細檢查代碼發現是在jsp文件里的form忘了加enctype=quot;multipart/formdataquot; 了。所以寫程序遇到錯誤或異常應該從多方面考慮問題存在的可能性,想到系統提示信息以外的東西。
1。 定義Action后, 如果指定了name, 那么必須要定義一個與它同名的FormBean才能進行form映射。2。 如果定義Action后, 提交頁面時出現 "No input attribute for mapping path。。。" 錯誤, 則需要在其input屬性中定義轉向的頁面。3。 如果插入新的數據時出現 "Batch update row count wrong:。。。" 錯誤, 則說明XXX。hbm。xml中指定的key的類型為原始類型(int, long),因為這種類型會自動分配值, 而這個值往往會讓系統認為已經存在該記錄, 正確的方法是使用java。lang。Integer或java。lang。Long對象。4。 如果插入數據時出現 "argument type mismatch" 錯誤, 可能是你使用了Date等特殊對象, 因為struts不能自動從String型轉換成Date型,所以, 你需要在Action中手動把String型轉換成Date型。5。 Hibernate中, Query的iterator()比list()方法快很多。6。 如果出現 "equal symbol expected" 錯誤, 說明你的strtus標簽中包含另一個標簽或者變量, 例如:
html:select property="test" onchange="%=test%"/
或者
html:hidden property="test" value="bean:write name="t" property="p"/"/
更多關注:JAVA考試經驗 JAVA輔導資料 JAVA歷年真題
(責任編輯:xy)