分享

struts1 问题 报错 集锦

 一本正经地胡闹 2019-08-23

struts1报错does not contain specified method

异常信息:

Java代码  

  1. 2011-8-18 20:50:07 org.apache.catalina.core.StandardWrapperValve invoke  

  2. 严重: Servlet.service() for servlet action threw exception  

  3. java.lang.NoSuchMethodException: Action[/userAction] does not contain specified method (check logs)  

错误代码:

Java代码 

  1. public ActionForward doQuery(ActionMapping mapping, ActionForm form,  

  2.             ServletRequest request, ServletResponse response) throws Exception {  


  3.         //内部实现略  


  4. }  


问题出在方法的参数中

原本应重写DispatchAction类中的execute方法,改一下名字后直接使用。结果错误重写了Action类中的execute,

解决方案:

Java代码 

  1. public ActionForward doQuery(ActionMapping mapping, ActionForm form,  

  2.             HttpServletRequest request, HttpServletResponse response) throws Exception {  


  3.         //内部实现略  


  4. }  

出现此异常的其他几种情况:

1、自定义Action类需要继承DispatchAction类。

2、方法参数ActionMapping mapping, ActionForm form,

                 HttpServletRequest request, HttpServletResponse response 顺序也需一致

3、方法的访问修饰符设置为public、不是protected,更不是其他。
4、动态调用Action,在struts-config.xml中要配置Action的parameter参数

     参数是页面传值的参数,值与要执行Action中的方法名相同。

5、页面表单提交方式为post,否则也有可能出现这种异常。

Xml代码 

  1. <action-mappings >  

  2.     <action  

  3.         path="/userAction"  

  4.         type="org.springframework.web.struts.DelegatingActionProxy"  

  5.         name="userForm"  

  6.         parameter="method" >  

  7.         <forward name="success" path="/index.jsp"></forward>  

  8.         <forward name="error" path="/error.jsp"></forward>  

  9.     </action>  

  10. </action-mappings>  

Html代码 

  1. <html:form action="userAction.do?method=doQuery" method="post">  

  2.         Name:<html:text property="user.fname"></html:text>  

  3.         Area:<html:text property="user.farea"></html:text>  

  4.         <html:submit value="Search Flowers"></html:submit>  

  5. </html:form>  


javax.servlet.ServletException: DispatchMapping[XXX] does not define a handler property 
错误 :javax.servlet.ServletException: DispatchMapping[0] does not define a handler property 
原因: action参数配置不全 
解决方法:在 config文件中 添加 parameter="method"等 

错误: 表单数据验证失败时发生错误,“No input attribute for mapping path” 
原因:action中表单验证 validate="true" ,如果validate()返回非空的ActionErrors,将会被转到input属性指定的URI,而action中未指定input时会报此错 
解决方法:添加 input="url" 或者 validate="false" 

错误:jsp页面中,一个form有隐藏的method属性,<input type="hidden" name="method" value="<bean:message key="button.deleteall"/>"> ,当其他的button使用 method时会默认为使用该属性,则达不到程序员预期的操作 
解决方法:实用javascript写一个function,改变该method值 
function{ 
document.forms[0].elements.value="你要的操作名"; 



错误:Action里无法解析 导入的包,Form里的方法,但是代码没错 
原因:不明,我是改变了validation.xml后重新发布而出了错的 
解决方法:将工程关了,再打开,myeclipse会将工程重新构建,这样问题就解决了 
ps:重启Tomcat是没有用滴…… 

错误:Struts:HTTP Status 404 - Servlet action is not available 

   原因 

1、web.xml文件中未配置ActionServlet。      
2、struts-config.xml文件未配置你要访问的Action。   
3、你的jsp文件form标记中action属性的路径名称错误。   
4、非以上三种情况。 

针对以上4种情况相应的解决方案如下:   
    
   1、在web.xml文件中加上ActionServlet的配置信息   


   <servlet>   
           <servlet-name>action</servlet-name>   
           <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>   
           <init-param>   
               <param-name>config</param-name>   
               <param-value>/WEB-INF/struts-config.xml</param-value>   
           </init-param>   
           <init-param>   
               <param-name>debug</param-name>   
               <param-value>0</param-value>   
           </init-param>   
           <init-param>   
               <param-name>detail</param-name>   
               <param-value>0</param-value>   
           </init-param>   
           <load-on-startup>2</load-on-startup>   
       </servlet> 


   2、在struts-config.xml文件检查你要访问的Action配置文件。   
    
   3、检查jsp文件form标记中action属性的路径名称是否与struts-config.xml文件中action标记的path属性的路径名称一致。   
    
   4、非以上情况的解决办法就是检查web容器的log日志,如果时tomcat则检查下logs目录下的localhost_log文件,看里边是否记录有错误信息,然后根据错误信息提示将其纠正。

2011-05-09

转自 https://www./blog/778042-1037611

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多