zoukankan      html  css  js  c++  java
  • 关于struts2出现No result defined for action????Action and result input


    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中执行转换。这样也方便差错

       
  • 相关阅读:
    为什么 "auto a = 1;" 在C语言中可以编译通过?
    谈谈duilib
    软工第一次作业
    数独_个人项目
    统计Github项目信息
    字符串中的匹配之递归
    软工第0次作业
    c++浅拷贝与深拷贝(LeetCode669)
    修改xcode初始生成代码
    树上处理的问题总结
  • 原文地址:https://www.cnblogs.com/af826/p/4270408.html
Copyright © 2011-2022 走看看