javax.servlet.servletexception: cannot find actionmappings or actionformbeans collection

 【转自】 http://hi.baidu.com/gisland/blog/item/198ea4ec20ed162663d09f35.html

调试一个有验证使用了标签的struts程序碰到了这样一个问题,检查了N个地方,没有找到错误,开始网上搜索。发现原来这是一个普遍问题啊,有很多种情况会导致这个问题,但大致就是以下几种情况:
1。Web.xml未初始化问题(本人问题就是这样解决的)
    <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>2</param-value>
    </init-param>
    </servlet>
以上少了一个
<load-on-startup>0</load-on-startup>
这样开始是没有加载这个类,就没有初始化struts-config.xml,所以找不到actionmappings or actionformbeans collection。
这个错误的特征是,如果开始访问login.jsp出错,但手动访问login.do后就没有任何错误了。我就是碰到这样的情况。
PS:web.xml还有可能没有定义Tag Library,也有可能出问题,参照struts例子解决。
2。struts-config.xml问题
主要是action 的path 还有和formbean的对应问题
   <form-beans>
     <form-bean name="loginForm"
       type="com.javapro.struts.LoginForm"/>
   </form-beans>
  
   <action-mappings>
     <action
       path="/login"
       type="com.javapro.struts.LoginAction"
       name="loginForm"
       input="/login.jsp"
       unknown="true">
       <forward name="success" path="/mainMenu.jsp"/>
     </action>
以上是一个正确的对应,注意大小写问题
PS:这里还有格式不正确导致配置无法正确加载,可以看到控制台或log文件中有出错的提示。比如没有结束标签,属性名字写错了等等
还有如果抄书的话,可能书使用的版本较老,有可能
<!DOCTYPE struts-config PUBLIC
           "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
           "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
中是1。0,web.xml可能也有这个问题,参考你用的版本的例子就好了。
3。jar包不全或版本不对
也有可能导致这个问题,从stuts例子里面拷过来就好了。
4。编译问题
有可能Action和Formbean没有编译,也会有这个问题,检查一下有没有对应的class文件就好。class路径不对可能也会导致这个问题。
5。版本问题
用的servlet容器和struts版本不对或这两个版本协调有问题。
在以上几条都不能解决问题的情况下,可能就是版本的问题了,换个高版本试试吧

可能还有其他情况,欢迎补充
----------------
因为写书或文章的时候用的struts版本与现在的版本不同,抄书上的例子很有可能运行不了,还是要根据新版本的示例来改啊,不过这样收获也很多,对于加深理解很有帮助。看来学程序还就是不能动手少了。我相信当我解决了100个问题后,我也就精通struts了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值