第一个Struts2.3项目出现的问题的解决方法

        第一个简单的Struts项目都出错,老是提示404错误,找不到资源,非常不爽,起初怀疑是配置文件struts.xml和web.xml有错误,但后来实在查不出哪里出错,因为是照着书上一步一步来的,在网上找了很多,问了很多,都解决不了,也许因为他们都没用过最新版本的Struts(我下载的是Struts-2.3.1),所以网上提供的解决办法通通不适用,查不出问题,困扰了我两个星期,我还发了帖子(http://topic.csdn.net/u/20111219/20/7f54ae58-8ab3-4562-a594-c3c03462c8fb.html),但回帖的人都没说到关键点上。

         后来我想Struts2.3的包里有项目的样本,可以看看样本能不能在Eclipse上运行,如果能运行,那我和它对照一下,哪里出错不久知道了吗,于是web.xml、struts.xml、WEB-INF\lib下引用的包逐个对比,结果是,我项目里的web.xml和struts.xml与Struts2.3里的struts2-blank里的略有不同,大同小异,不是关键,关键的问题是,我的WEB-INF\lib下引用的包缺少了几个jar包,对照补上之后项目立马正常运行!这里说明一下,这些缺失的jar包,其实之前我在构建路径里都通过用户库的形式添加了,但是还是不行,一定要和Struts提供的样本项目一样,添加到WEB-INF\lib文件夹里。使用

       从这一个简单的helloworld项目,得到一些经验,1、如果项目出错,不妨对照Struts的样本案例,样本案例还可以提供很多参考和启发;2、如果项目当中需要添加jar包,最保险的做法就是,参照Struts提供的样本项目,统一添加到WEB-INF\lib文件夹里,而不是什么构建路径、用户库。

      为了防止忘记,记下Struts项目里必需放进lib的11个jar包:asm-3.3.jar  asm-commons-3.3.jar   asm-tree-3.3.ja   commons-fieupload-1.2.2.jar    commons-io-2.0.1.jar   commons-lang-2.5.jar freemarker-2.3.18.jar javaassist-3.11.0.GA.jar ognl-3.0.3.jar  struts-core-2.3.1.jar  xwork-core-2.3.1.jar

     Struts2.3的样本案例里的struts.xml的文件头为:

        <?xml version="1.0" encoding="UTF-8" ?>
            <!DOCTYPE struts PUBLIC
               "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
               "http://struts.apache.org/dtds/struts-2.0.dtd">

       <struts>

        .....

       </struts>

           也就是说即使是2.3版本的Struts采用的依然是2.0的配置文件。

    样本案例的web.xml:   

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

所以样本案例的filter采用的是:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个类。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值