JAVA web專案中的no result defined for action result input 錯誤
No result defined for action and result input
產生這個錯誤的原因:Action中的屬性值為空的時候,Struts2的預設攔截器會報錯,但是又找不到input的Result,不能夠把錯誤返回,所以報這種錯誤。
今天在在寫專案中表單的修改功能時,出現了這個錯誤,一開始找不到頭緒,以為是配置檔案錯了,看了好多遍都沒有發現錯誤,在火狐瀏覽器中的firebug除錯中看到了錯誤資訊是Action沒有找到,不應該的,配置檔案沒有問題。
上網找資料的時候看見有人說是可能是因為:
1、validate方法沒有通過;
2、頁面元素中有重新命名時,但後臺action類的對應的接收此同名引數的是變數而沒有寫成陣列
頁面元素我知道沒有重名,但是validate是跟新增資料共用的,如果有錯誤為什麼新增的時候沒有報錯了。
看了下表單的ID ,修改的表單ID跟新增的表單ID是一樣的,不過這兩個是在不同的JSP檔案中,應該不存在衝突,我在想是不是瀏覽器快取的問題,從伺服器上載入js檔案可能出現問題,我試著在頁面中輸入一些錯誤的資訊,發現validate.js並沒有提示出錯,有時候輸入正確資訊js驗證依然報錯,我在想可能就是這個驗證問題了,
試著把修改和新增兩個介面的表單ID改了(當時實在是沒有其他辦法了),重啟伺服器,發現修改能夠順利提交了。
值得警惕的是:刪除過程中也出現了同樣的錯誤
資訊顯示deleteAction中沒有result return 這應該是配置檔案錯了,找到Action中並沒錯誤,那麼肯定是ACtion 中返回值出現了錯誤,果然,Action中返回值出現了錯誤。
從上面可知,能夠導致 No result defined for action result input 這種錯誤可能是因為:
1、validate方法沒有通過(表單驗證看看有沒有重名,導致js檔案載入過慢);
2、頁面元素中有重新命名時,但後臺action類的對應的接收此同名引數的是變數而沒有寫成陣列
3、配置檔案中result 返回.jsp出現錯誤(多了空格、或者沒有介面)
4、對應Action中沒有返回值,或者返回值出錯
前幾天一直以為validate驗證錯誤是因為沒有載入而導致錯誤,其實不是的,最初的錯誤是因為,我的修改頁面的資料是從資料庫中取出來的,string型別的還好,如果是float 型 為空值的話在頁面上面就會顯示null字串,為了美觀,決定在getvalue()之後判斷一下是否為null 如果為null的話,我居然讓它為“ ”,所以導致頁面載入完之後有的float項變成了“ ”,所以提交的時候就報錯了。。。。
今天字、進、