產生這個錯誤的緣由:Action中的屬性值爲空的時候,Struts2的默認攔截器會報錯,可是又找不到input的Result,不可以把錯誤返回,因此報這種錯誤。
數據庫
今天在在寫項目中表單的修改功能時,出現了這個錯誤,一開始找不到頭緒,覺得是配置文件錯了,看了好多遍都沒有發現錯誤,在火狐瀏覽器中的firebug調試中看到了錯誤信息是Action沒有找到,不該該的,配置文件沒有問題。數組
上網找資料的時候看見有人說是多是由於:瀏覽器
1、validate方法沒有經過;
2、頁面元素中有重命名時,但後臺action類的對應的接收此同名參數的是變量而沒有寫成數組
緩存
頁面元素我知道沒有重名,可是validate是跟添加數據共用的,若是有錯誤爲何添加的時候沒有報錯了。服務器
看了下表單的ID ,修改的表單ID跟添加的表單ID是同樣的,不過這兩個是在不一樣的JSP文件中,應該不存在衝突,我在想是否是瀏覽器緩存的問題,從服務器上加載js文件可能出現問題,我試着在頁面中輸入一些錯誤的信息,發現validate.js並無提示出錯,有時候輸入正確信息js驗證依然報錯,我在想可能就是這個驗證問題了,jsp
試着把修改和添加兩個界面的表單ID改了(當時實在是沒有其餘辦法了),重啓服務器,發現修改可以順利提交了。spa
值得警戒的是:刪除過程當中也出現了一樣的錯誤調試
信息顯示deleteAction中沒有result return 這應該是配置文件錯了,找到Action中並沒錯誤,那麼確定是ACtion 中返回值出現了錯誤,果真,Action中返回值出現了錯誤。字符串
從上面可知,可以致使 No result defined for action result input 這種錯誤多是由於:get
1、validate方法沒有經過(表單驗證看看有沒有重名,致使js文件加載過慢);
2、頁面元素中有重命名時,但後臺action類的對應的接收此同名參數的是變量而沒有寫成數組
三、配置文件中result 返回.jsp出現錯誤(多了空格、或者沒有界面)
四、對應Action中沒有返回值,或者返回值出錯
前幾天一直覺得validate驗證錯誤是由於沒有加載而致使錯誤,其實不是的,最初的錯誤是由於,個人修改頁面的數據是從數據庫中取出來的,string類型的還好,若是是float 型 爲空值的話在頁面上面就會顯示null字符串,爲了美觀,決定在getvalue()以後判斷一下是否爲null 若是爲null的話,我竟然讓它爲「 」,因此致使頁面加載完以後有的float項變成了「 」,因此提交的時候就報錯了。。。。
今天字、進、