<filter>
   <filter-name>dispatcher</filter-name>
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
  </filter>
  <filter-mapping>
   <filter-name>dispatcher</filter-name>
   <url-pattern>/*</url-pattern>
  </filter-mapping>
我这个是struts2.2,不知道对你有用没有

解决方案 »

  1.   

    filter-class应该为org.apache.struts2.dispatcher.FilterDispatcher
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter这个是在struts2.1里的。
      

  2.   

    加这两个包commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 试下看看 
      

  3.   

    多谢回复,不需要配置struts2的filter吗?
      

  4.   

    是改成这样吗?
      <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>运行还是404
      

  5.   

    jar包都在,加了commons-fileupload, commons-io, freeer, javassist, ognl, struts2-core, xwork-core这7个
      

  6.   

    配置没错误,你看下是不是存在你要跳转的页面,或者路径无误。  
    看下你在struts.xml的配置。
    “org.apache.struts2.dispatcher.FilterDispatcher”是老的方式。
    还是用 “org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter”
      

  7.   

    应该不是跳转的问题,我把配置filter相关的内容在web.xml里删掉就能显示页面,所以觉得就是一楼的代码有问题吧另外会不会是其他软件的版本问题?我用的是eclipse-jee-indigo-win32-x86_64,apache-tomcat-7.0.21-windows-x64,jdk1.6.0_27_x64
      

  8.   

    顶一下啊,求助,只要在web.xml里配置了struts2的filter就会404
      

  9.   

    “org.apache.struts2.dispatcher.FilterDispatcher”
     “org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter”
    这两种都没问题
    楼主的访问路径是否正确?
      

  10.   

    不好意思,访问路径是指什么?我现在只是尝试打开jsp,还没尝试action
    jsp文件的路径是对的
      

  11.   

    在struts可视化界面新建一个页面看一下里面的配置 对比一下看哪里出错了就知道了   404大部分都是路径问题的
      

  12.   

    你还没有配置action那就直接访问你的文件就是了,你的jsp文件是在那个目录下的,是webroot还是WEB-INF如果是WEB-INF的话那你访问不到就对了,WEB-INF目录下要配了Action后才能有权限访问
      

  13.   

    是WebContent目录
    因为在web.xml里不配置filter的话访问相同的jsp文件正常,所以觉得不是路径的问题
      

  14.   

    是这样的,你访问的是  *.jsp     而你在WEB.XML中配置让 struts2的filter,filter是这样一个概念,他会处理所有的请求,struts2担当了接受请求处理请求的任务,而它只能处理两种后缀名  一种是 .action  另一种是没有后缀  所以你的访问请求必须是两者之一   当你请求规定的路径时候  他就会去读取struts.xml,所以  你需要去配置一个 action  即使是只返回   SUCCESS  ,LZ加油
      

  15.   

    LZ你把几个配置文件晒出来,不然没办法判断呀。  这个的web.xml就没配错。
      

  16.   

    我找了一个struts.xml,把它放到了WEB-INF/classes下面,这样可以吗?
    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
    <!-- 指定Struts 2配置文件的根元素 -->
    <struts>
    <!-- 指定全局国际化资源文件 -->
    <constant name="struts.custom.i18n.resources" value="mess"/>
    <!-- 指定国际化编码所使用的字符集 -->
    <constant name="struts.i18n.encoding" value="GBK"/>
    </struts>
      

  17.   


    。。无语.. 
    <struts>
    <package name="default" extends="struts-default">
    <action name="Student" class="net.oraro.action.StudentAction">
    <result name="index">index.jsp</result>
    <result name="addoredit">add_or_edit.jsp</result>
    <result name="view">main.jsp</result>
    </action>
    <action name="Manager" class="net.oraro.action.ManagerAction">
    <result name="index">index.jsp</result>
    <result name="view">/jsp/main.jsp</result>
    </action>
    </package>
    </struts>
    你的配置文件 连action都没有怎么跳? 如果是欢迎页index.jsp。也要重新配。
      

  18.   

    <?xml version="1.0" encoding="GBK"?>
    <!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
        "http://struts.apache.org/dtds/struts-2.1.7.dtd">
    <!-- 指定Struts 2配置文件的根元素 -->
    <struts>
        <!-- 指定全局国际化资源文件 -->
        <constant name="struts.custom.i18n.resources" value="mess"/>
        <!-- 指定国际化编码所使用的字符集 -->    
        <constant name="struts.i18n.encoding" value="GBK"/>
    </struts>
    你的这段,只是把头部配了。
      

  19.   

      <?xml version="1.0" encoding="UTF-8" ?> 
    - <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    - <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>
    - <welcome-file-list>
      <welcome-file>index.jsp</welcome-file> 
      </welcome-file-list>
      </web-app>
      

  20.   

    那jsp交给strust后怎么处理?需要配置strust.xml么?
    我试着把web.xml里的/*改成了*.action,还是一样404
      

  21.   


    <?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>Struts2Example2</display-name>
        <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> <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    </web-app>
      

  22.   

    然后只显示jsp需要配置strust.xml吗?
      

  23.   

    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>*.action</url-pattern>
    </filter-mapping>
    struts.xml <constant name="user.data.dir" value="c:\DATA\"></constant>
    <!-- 1048576 is 1M,  1048576*5 = 5242880-->
    <constant name="struts.multipart.maxSize" value="5242880"></constant> <package name="hdm" extends="struts-default">
    <action name="login" class="servlet.Login">
    <result name="success">login.jsp</result>
    <result name="error">error.jsp</result>
    </action>
      

  24.   

    建议LZ还是重新看教程吧。Struts2的配置都没搞明白。
      

  25.   

    确实没搞明白,刚尝试第一个struts工程,就是照着教程做但运行不正确才上来问能不能麻烦回答我以下的问题:
    1、像我顶楼那样,在web.xml里用/*拦截所有url,使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter处理,这样应该可以直接访问jsp吗?2、如果不行,是否需要配置struts.xml?不考虑action只是显示简单jsp应该如何配置struts.xml?3、我把<url-pattern>改成了*.action,可访问jsp时候还是404,为什么?
      <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>*.action</url-pattern>
      </filter-mapping>若能赐教非常感谢!搜了半天有的说工程名不能以struts开头,我重建了一个不包含struts的,也还是一样404
      

  26.   

    请先确认配置完后struts2是否正常启动,无出错信息,启动是注意看控制台信息
    1、配置web.xml
      <filter>
        <filter-name>struts2</filter-name>
          <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      </filter>
      <!-- 只对后缀为.action的URL进行struts处理,jsp还是用原有的-->
      <filter-mapping>
        <filter-name>struts2</filter-name>
          <url-pattern>*.action</url-pattern>
      </filter-mapping>
    2、新建一个test.jsp页面,访问http://localhost:port/project_name/test.jsp
      

  27.   

    1、像我顶楼那样,在web.xml里用/*拦截所有url,使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter处理,这样应该可以直接访问jsp吗?
    JSP基础没学好啊,这个拦截标记的意义是拦截所有的页面访问,不管你是html还是jsp还是action2、如果不行,是否需要配置struts.xml?不考虑action只是显示简单jsp应该如何配置struts.xml?
    当然需要配置struts,不太明白你的直接访问jsp是什么意思,因为struts返回的jsp页面势必要使用s标签,只要使用了s标签,就必须从一个action返回结果,否则页面报500错误3、我把<url-pattern>改成了*.action,可访问jsp时候还是404,为什么?
    第一,修改配置以后是否重启了tomcat
    第二,你的路径究竟写的对不对,返回404肯定是你页面不存在,你可以再根目录新建一个空白的test.jsp文件,直接访问http://localhost:8080/项目地址/test.jsp,如果依然报错,你得看是不是tomcat启动的时候有错误,项目内文件有错误会导致这个项目不被服务器加载
      

  28.   

    今天突然就好了……虽然还不是太明白但我的第一个struts2架起来了多谢诸位
      

  29.   

    我确实也没搞清楚之前是什么问题……十一放假回来重建了一个project就好了……
      

  30.   

    404的话很可能是配置有错误导致tomcat没启动,你看看eclipse的console报什么错没有
      

  31.   

    谢谢,我解决了,看了一下console,发现找不到lang包,我复制到lib下就好了,谢谢了。
      

  32.   

    今天也碰到这个问题,使用eclipse-indigo开发,搭建一个struts2.3的框架。
    结果启动报错,无法找到FilterDispatcher类。
    后来发现原因是jar包不能直接添加到buildpath里面,要拷贝到lib文件夹下面才能使用至于为什么我也不清楚。
    至于楼上一些哥们的说法,要在struts.xml里面配置一些action才能使用...应该没这要求吧...对于struts.xml里面没配置的URL,应该是直接访问吧...
      

  33.   


    具体怎么操作?求指导正在学Struts2 老是报404错,要崩溃了!
      

  34.   

    404的话很可能是配置有错误导致tomcat没启动,你看看eclipse的console报什么错没有正解,把lang包拷贝过来解决
      

  35.   

    擦,有没有解决的啊?我的也是这样咧,不在web.xml里配置struts2还好,运行能自己进默认主页,配了之后就直接找不到主页了
      

  36.   


    把其他的web.xml给复制过来用,仍不行,然后回去struts.xml里看配置,然后直接把所有<struts></struts>里面的内容删掉,只写简单的
    <struts>    
        <package name="index" namespace="/" extends="struts-default">  
            <action name="index">  
                <result>index.jsp</result>  
            </action>  
        </package>  
    </struts>我的小页面终于又回来了
    不知道是不是因为之前的配置参数有错还是什么,可能一旦有错他就会卡在那里然后报错,所以这是我的这个问题的解决办法,不是你们想要的方法不要喷哎,这贴过的真久不知道还有没有人鸟我呢