环境——
    JDK 1.6
    TOMCAT 5.5
    Eclipse 3.2
    Struts 2.1.8.1 (也试过Struts 2.0.14,出现同样问题)web.xml——
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>
Struts2_HelloWorld</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.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>struts2.xml——
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts >
   
    <include file="struts-default"/>
    <package name="tutoriala" namespace="/"  extends="struts-default">
        <action name="HelloWorld" class="tutorial.HelloWorld">
            <result>HelloWorld.jsp</result>
        </action>
    </package>
</struts>
SayHello.jsp——
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Say Hello</title>
    </head>
    <body>
        <h3>Say "Hello" to: </h3>
        <s:form method="post" action="HelloWorld" >
            Name: <s:textfield name="name" />
            <s:submit />
        </s:form>
    </body>
</html>
HelloWorld.jsp——
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>Hello</title>
    </head>
    <body>
        <h3><s:property value="name" /></h3>
    </body>
</html>
HelloWorld.java——
package tutorial;import com.opensymphony.xwork2.ActionSupport;public class HelloWorld extends ActionSupport {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String execute() {
name = "Hello, " + name + "!"; 
return SUCCESS;
}}
---------------------------------------------------------------------
当SayHello.jsp页面提交后,报错——type Status reportmessage There is no Action mapped for namespace / and action name HelloWorld.description The requested resource (There is no Action mapped for namespace / and action name HelloWorld.) is not available.
控制台信息:——
2010-4-17 23:04:49 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'HelloWorld' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
2010-4-17 23:04:49 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: No configuration found for the specified action: 'HelloWorld' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
2010-4-17 23:05:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: Could not find action or result
There is no Action mapped for namespace / and action name HelloWorld. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:178)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Unknown Source)---------------------------------------------------------
根据网上能找到解决方法,如加上namespace="/"等,问题依然不能解决。
请哪位高手不吝赐教,不胜感激!!!

解决方案 »

  1.   

    说明:
    代码struts2.xml中
     <package name="tutoriala" namespace="/" extends="struts-default">
    一句,即是根据网上指点的方法修改了包名及加上namespace="/",问题依然如原句问题。原句为:
     <package name="tutorial" extends="struts-default">
      

  2.   

    struts2配置文件有问题 action里 还有个mentod={1}
      

  3.   


    <!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts >
      <package name="tutoriala"  extends="struts-default">
      <action name="HelloWorld" class="tutorial.HelloWorld">
      <result>HelloWorld.jsp</result>
      </action>
      </package>
    </struts>
      

  4.   

    我已经在机子上编译测试过了,成功!就上面的不一样,其他的和你的一样,我们学校刚学完struts2
    导入的包包:
      

  5.   

    struts2.xml——
    配置文件中、
    <result>HelloWorld.jsp</result>在这里<result>/HelloWorld.jsp</result>
    要加个斜杠、
      

  6.   

    那个是我的失误,看论坛里的另一篇struts2 HelloWorld的帖子,我那的代码是正常运行的,也有可能是你配置文件的位置放错了,给邮箱我可以发你我根据你们修改的源码测试下。
    我这环境是:
    Tomcat6.o
    jdk1.6
    myeclipse8.0
      

  7.   

    楼主可以修改后把tomcat中的项目缓存和webapps中的项目文件夹全部删除,以debug的方式重启tomcat,再试试行不行。
      

  8.   


    <struts >
      <package name="tutoriala" extends="struts-default">
              <action name="HelloWorld" class="tutorial.HelloWorld">
                   <result name="success">/HelloWorld.jsp</result>
              </action>
      </package>
    </struts>
      

  9.   

    <struts >
    把空格去掉.......
    然后复制到你的配置文件试试........
      

  10.   

    楼主的jdk是1.6啊,建议将你的tomcat5.5换成tomcat6.0试试!!!
      

  11.   

    <struts >
      <package name="tutoriala" extends="struts-default">
              <action name="HelloWorld" class="tutorial.HelloWorld">
                   <result name="success">/HelloWorld.jsp</result>
              </action>
      </package>
    </struts>
    马士兵的视频里面有这个例子.你可以下个马士兵的视频看看..要斜杠在HelloWorld.jsp前面..
      

  12.   

     <action name="HelloWorld" class="tutorial.HelloWorld">
    改成 <action name="HelloWorld" class="tutorial.HelloWorld" method="execute">