解决方案 »

  1.   

    <package name="default" namespace="/" extends="struts-default">   
      

  2.   

    和打开哪个JSP页面无关吧,程序是跑到struts.xml就已经找不到requested resource 
      

  3.   

    你问题发的很认真 值得表扬..虽然有些关键地方并没有发出1.启动项目的时候请检查控制台输出或者通过Tomcat Manager检查项目运行状态 404除了资源不存在外 项目启动失败则无法访问此项目下的任何资源2.如果项目启动成功 去发布目录检查下是否存在你访问的JSP文件3.如果项目启动失败..你先解决了再说吧
      

  4.   

    楼主,贴一下你的Action部分部分代码,因为在你的strut.xml中没有配置method属性,不知道你的Action中是否有默认的execute()方法。
      

  5.   

     404错误:如五楼说先检查下服务器。<package name="default" namespace="/" extends="struts-default">  
    然后在login.jsp页面的<s:form action="login" >改为<s:form action="/login" >
    试试
      

  6.   

    指定方法没?method。。还是默认方法?
      

  7.   

    1.method 是不是execute?
    2.xml映射的Class路径是否写对了?
      

  8.   

    按5楼的建议,正在按console的报错信息去百度相关的解决方法
    以下是报错信息:
    八月 25, 2013 11:18:36 上午 org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Java\jdk1.7.0_25\bin;.
    八月 25, 2013 11:18:36 上午 org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:StrutsDemo' did not find a matching property.
    八月 25, 2013 11:18:37 上午 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    八月 25, 2013 11:18:37 上午 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    八月 25, 2013 11:18:37 上午 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1068 ms
    八月 25, 2013 11:18:37 上午 org.apache.catalina.core.StandardService startInternal
    INFO: Starting service Catalina
    八月 25, 2013 11:18:37 上午 org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.42
    八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext filterStart
    SEVERE: Exception starting filter struts2
    java.lang.ClassNotFoundException: org.apache.struts2.dispathcer.ng.filter.StrutsPrepareAndExecuteFilter
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4775)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5452)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext startInternal
    SEVERE: Error filterStart
    八月 25, 2013 11:18:38 上午 org.apache.catalina.core.StandardContext startInternal
    SEVERE: Context [/StrutsDemo] startup failed due to previous errors
    八月 25, 2013 11:18:38 上午 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8080"]
    八月 25, 2013 11:18:38 上午 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    八月 25, 2013 11:18:38 上午 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 1400 ms
      

  9.   

    我按控制台的错误日志,逐个将问题解决了。可以有个地方,还是很不理解:
    书上说“在Eclipse工具管理下,当Eclipse生成、部署WB项目时,会自动将Src路径下除*.java外的所有文件都copy到WEB应用的WEB-INF\classes路径下”,为什么我debug后相应的struts.xml等文件不会自动copy到WEB-INF\classes路径下呢(classes 文件夹是我自己建的)。
      

  10.   

    我按控制台的错误日志,逐个将问题解决了。可以有个地方,还是很不理解:
    书上说“在Eclipse工具管理下,当Eclipse生成、部署WB项目时,会自动将Src路径下除*.java外的所有文件都copy到WEB应用的WEB-INF\classes路径下”,为什么我debug后相应的struts.xml等文件不会自动copy到WEB-INF\classes路径下呢(classes 文件夹是我自己建的)。
      

  11.   

    classes目录eclipse会帮你自动生成啊。。你打开Navigator视图看看classes下面有没有
      

  12.   

    我重开了项目,没有手工去建classes目录,结果如下图:还是src目录下的文件还是没copy过去
      

  13.   

    这个其实可以把structs.xml或者web.xml中东西注释掉一点点调试