關於struts2出現No result defined for action????Action and result input - action



  1. 前台jsp頁面提交的數據與對應的action屬性類型不一致
    例如:前台頁面有多個相同的input 輸入框
  2.  1 <input onclick="$('[name=privilegeIds]').attr('checked',this.checked)" type="checkbox" name="privilegeIds"></input>
     2 <!--下面的是相同的checkbox 跟上面的名稱一致-->
     3 
     4     <ul id="root">
     5 <%-- 第一級 --%>
     6 <s:iterator value="#privilegelist">
     7     <li>
     8         <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/> >
     9         <label for="cb_${id}"><span class="folder">${name}</span></label>
    10         <ul>
    11         <%-- 第二級 --%>
    12         <s:iterator value="children">
    13             <li>
    14                 <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/> >
    15                 <label for="cb_${id}"><span class="folder">${name}</span></label>
    16                 <ul>
    17                 <%-- 第三級 --%>
    18                 <s:iterator value="children">
    19                     <li>
    20                         <input type="checkbox" name="privilegeIds" value="${id}" id="cb_${id}" <s:property value="%{id in privilegeIds ? 'checked' : ''}"/> >
    21                         <label for="cb_${id}"><span class="folder">${name}</span></label>
    22                     </li>
    23                 </s:iterator>
    24                 </ul>
    25             </li>
    26         </s:iterator>
    27         </ul>
    28     </li>
    29 </s:iterator>
    30 </ul>
    31 <!--只需要看input標簽即可-->

    這段代碼我想說明的是 如果你提交的同名(name屬性名稱相同的話,那么他們的value值的類型必須一致且最好與你action里定義的屬性類型一致)否則會出現上面異常,且這個異常非常的不容易發現。
    避免錯失:定義前台表單元素數據時如果,例如:你的全選按鈕只是一個事件功能並不需要向后台action提交數據的話,就不要設置該元素的 name屬性了,即只要是向后台提交數據的表單元素都可以不設置name屬性,避免因此發生不必要的異常。

     

  3. 這是遇到這個問題時看到的比較准確的分析也貼在這里
    今天在編程的時候,我遇到了No result defined for action and result input的錯誤,這個錯誤想必大家都有遇到過吧,我今天發了很長時間弄這個錯誤,我以為我的Action函數出錯了想調試,但是程序就是不進入斷點,上網查資料,有的說路徑錯誤啦,然后我找我的路徑錯誤,搞了半天還是沒發現有路徑問題。然后我給我的屬性的get方法都弄上了斷點,我發現了問題,現在跟大家分享。 
    這個錯誤就是說沒有為返回的input定義,可是有時候我們不一定要這個鬼東西,然而在Action中出錯的話,默認就返回了這個input了,這時,我們在struts的<result>中定義的話,就出現No result defined for action and result input的錯誤了。 
    引起這個錯誤的原因是很多的,路徑錯誤也是其中的一種,我這里的問題是,我的頁面上的類型和我定義的屬性的類型不一致,我的屬性是int型的,但是在頁面上輸出的時候加了一個逗號,用了分割千位的,結果就出現了這個問題了。

     這個問題好像在strtus2.1以上版本才出現, 這個問題的上面的解決方案已經把原因說的差不多了,在實際應用中,我估計大部分情況應該都是在action里面定義了int或者別的什么類型的變量,然后指望struts的自動填裝把post來的數據轉換,這時容易出現轉換失敗,從而導致了這個錯誤,所以查這個錯誤,可以利用ff的httpfox來查看實際post的參數是什么,然后和action中對應的屬性對比,看那個會出現轉換錯誤。

        淡然另一種就是上面說的在所有的set 中加入斷點,總能看到是哪個方法執行失敗的。

        另外還有種就是頁面提交了同一個名字的參數多個,比如

    寫道
    username 123 
    username 123 
    permissions 123 
    info 31234

     頁面沖提交了了兩個username ,而我的后台卻只寫了一個String username,這樣同樣會出錯,這個是利用httpfox看的,

        其實最好的是action中的和post相對應屬性都設置成為String類型,省事,也不會再出現這個錯誤了,然后在execute中執行轉換。這樣也方便差錯

     

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM