找不到Struts调度程序

时间:2014-04-18 09:18:30

标签: java jsp struts2

ERROR就像:

无法找到Struts调度程序。这通常是由于使用没有关联过滤器的Struts标记引起的。 Struts标记仅在请求通过其servlet过滤器时可用,该过滤器初始化此标记所需的Struts调度程序。

我的struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" 

    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

<display-name>Struts2 Login</display-name>

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

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

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

我的web.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>
<constant name="struts.action.excludePattern" value="/ServletToExcludeFromStruts*"    />
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="true" />
<package name="helloworld" extends="struts-default">

    <action name="hello" class="com.struts.action.HelloWorldAction"
        method="execute">
        <result name="success">/HelloWorld.jsp</result>
    </action>
    </package>
 </struts>

并且需要jar文件... [如果我错了,请纠正我]

commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
commons-collections-3.0.jar
commons-fileupload-1.2.1.jar
commons-lang-2.4.jar
commons-io-1.3.2.jar
javassist-3.0.jar

2 个答案:

答案 0 :(得分:2)

您的web.xml和struts.xml没问题。

JAR版本与the required dependencies for Struts 2.0略有不同:

xwork应为2.0。 7 commons-io应为1. 0 ,依此类推。

顺便说一句,因为看起来你今天开始使用一个新的Struts2项目,我强烈建议你从至少开始使用最新的Struts2库,原因如下:

  1. 绝对没有理由使用6年的图书馆;如果你的公司有这个规则,那么就和你的老板一起改变这个规则,特别是对于以下的论点;
  2. 2.3.15.3之前的Struts2版本受serious security bug影响;
  3. Struts2在功能,效率,速度,错误修正方面已经有了很大的发展,并且已经弃用了几个旧的和错误的库,比如Struts2-Dojo和前面提到的FilterDispatcher(自Struts 2.1.3以来,你必须使用新的过滤器,即StrutsPrepareAndExecuteFilter中所写的FilterDispatcher documentation
  4. 使用新的Struts2版本,您可以使用新的插件,这将为您的webapp添加实际值,尤其是:
  5. 然后使用最新的库(目前2.3.16.1)开始一个新项目,最好是使用Maven,或者手工注意the required dependencies and their versions

      

    Download a Release of Apache Struts

答案 1 :(得分:0)

我认为您已经交换了两个文件(struts.xml和web.xml)的内容,这就是您收到此错误的原因。