web.xml中是否有这样的配置?<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

解决方案 »

  1.   

    有啊,我的web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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" version="2.4">
      <display-name>WebModule1</display-name>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>application</param-name>
          <param-value>ApplicationResources</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      <welcome-file-list>
        <welcome-file>hello.jsp</welcome-file>
      </welcome-file-list>
      <jsp-config>
        <taglib>
          <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
        </taglib>
        <taglib>
          <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
          <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
        </taglib>
      </jsp-config>
    </web-app>
      

  2.   

    提交后地址栏是这样  http://localhost:8080/WebModule1/HelloWorld.do下面是空白,汗
      

  3.   

    看一下Action中的 mapping.findForward("是不是SayHello")
      

  4.   

    根本就没有提交到StrutsAction来啊,我在StrutsAction加了句
    System.out.println("aaaaaaaaaaaaaaaa");后台都没看见输出哦
      

  5.   

    <action name="HelloForm" path<html:form action="/HelloWorld.do">
     这两个地方要配置一样   名都不一样怎么能行呀  看后郁闷
      

  6.   

    你是用的是Myeclipse里面的JAR包吧,你换成书上光盘里自带的JAR包,再试试
      

  7.   

    <action name="HelloForm" path<html:form action="/HelloWorld.do">
     这两个地方要配置一样   名都不一样怎么能行呀  看后郁闷
    ===============
    这里还是楼主是对的
      

  8.   

    <action name="HelloForm"这个name不是对  
        <form-beans>
        <form-bean name="HelloForm" type="app.HelloForm" />
       </form-beans>
    中的name吗??
      

  9.   

    我用的是从网上下的struts.jar包,用struts1.20,也不知道下错了没有,v38(拖拉机)大大知道哪里有配套的吗?万分感谢了
      

  10.   

    可能跟表单验证的那个属性有关,validate="true"把这个去掉。还有,你是不是用可框架验证?或者你的action的mapping.("???")返回的是一个空值
      

  11.   

    stuts配制文件的路径写错,请写全路径.
      

  12.   

    <html:form action="/HelloWorld.do">
    这个有问题 form的action属性对应的就是action的path.应该改为:
    <html:form action="/HelloWorld"> 
    或者 
    <form action="/WebModule1/HelloWorld.do" ></form>还有就是觉得你的action中:
    <forward name="SayHello" path="/hello.jsp" />  也有问题.
    path="/hello.jsp" 这样写转到的估计是: http://localhost:8080/hello.jsp
      

  13.   

    楼上回答的有问题啊,请去看精通struts的第二章
      

  14.   

    再把你的form代码也打出来看看
      

  15.   

    一直没有解决,郁闷了
    action代码
    package app;import org.apache.struts.action.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public final class StrutsAction extends Action {
        public ActionForward excute(ActionForm form, ActionMapping mapp,
                                    HttpServletResponse res, HttpServletRequest re) {
            System.out.println("aaaaaaaaaaaaaa");
            HelloForm rs = (HelloForm) form;
            String UserName = rs.getUserName();
            PersonBean pb = new PersonBean();
            pb.setUserName(UserName);
            re.setAttribute("personbean", pb);
            return mapp.findForward("SayHello");
        }}
    form代码
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <html:html>
      <head>  </head>
      <body>
      <logic:present name="personbean" scope="request">    hello
        <bean:write name="personbean" property="userName"/>
      </logic:present>
      <html:form action="/HelloWorld.do">
        <html:text property="userName">    </html:text>
        <br/>
        <html:submit value="tijiao">    </html:submit>
      </html:form>
      </body>
    </html:html>
      

  16.   

    public ActionForward excute(ActionForm form, ActionMapping mapp,
                                    HttpServletResponse res, HttpServletRequest re) {你这里错了吧, excute 这个方法这里,我记得是execute.
      

  17.   


       <html:form action="/HelloWorld.do">
      把/去掉试试
      

  18.   

    1.action中应该是execute,而不是excute;
    2.jsp中应该是<html:text property="userName" name="HelloForm">,你忘了写HelloForm了,否则jsp不知道去找哪个form来处理啊
    3.看看各个文件是否在相应的目录:
    src\app\actions\StrutsAction.java
    src\app\forms\HelloForm.java
    \WEB-INF\hello.jsp
      

  19.   

    HelloForm.java中要有下面定义
    private String userName;
    public String getUserName(){
        return userName;
    }
    public void setUserName(String userName){
        this.userName = userName;
    }注意大小写
      

  20.   

    可以根据页面的错误提示查一下,如果说报404错误,那就是所提交的.do,不存在,那就要检查提交的路径问题。如果能提交到.do,就说明路径没有问题,再从配置文件或action中找错误。
    一定要在IE中查看错误提示,有些开发环境中带的浏览器的错误提示或错误页面有误导。
    我想楼主如果在集成开发环境下开发的话,应该很快就能找出错误。要细心。
      

  21.   

    <html:form action="/HelloWorld.do">中,如果加"/",会提交到服务器的根目录,楼主可以看看IE地址栏里的提交路径是不是你的配置文件中的.do的文件路径。比如如果你的工程名为app,则提交路径应加上工程名,或者把前面的"/"去掉,使用相对路径。楼主可以把"/",去掉试试。