很简单,跟我的错误一样的
大量的struts书误人,很容易导致初学者出现这个问题注意 jsp 中的 form action="exAction.do"应为  ="/exaction/exAction.do" ,如果你的应用目录是exaction 的话如果用 <html:form > 标记,就没有这个问题可惜在任何材料查不到标记库对路径的转换功能,只能够看源代码学习

解决方案 »

  1.   

    我的 ie 上显示 :http://localhost:8083/WebModule1/input.jsp    . 是不是就要写成:="/WebModule1/exAction.do" 啊???
      

  2.   

    再补充: 表单标记 
    <html:form>标记用来显示HTML标记,可以指定AcitonForm bean的名称和它的类名。如果没有设置这些属性,就需要有配置文件来指定ActionMapping以表明当前输入的是哪个JSP页,以及从映射中检索的bean名和类。如果在ActionMapping指定的作用域中没有找到指定的名称,就会创建并存储一个新的bean,否则将使用找到的bean。 
    <form>标记能够包含与各种HTML输入字段相对应的子标记。 
    <html:form>标记属性如下: 
    属性描述Action 与表单相关的操作。在配置中,这个操作也用来标识与表单相关的ActionForm bean Enctype 表单HTTP方法的编码类型Focus 表单中需要初始化焦点的字段Method 表单使用的HTTP方法Name 与表单相关的ActionForm bean的名称。如果没有设置这个属性,bean的名称将会从配置信息中获得Onreset 表单复位时的JavaScript事件句柄Onsubmit 表单提交时的JavaScript事件句柄Scope 搜索ActionForm bean的范围。如果没有设置,将从配置文件中获取Style 使用的格式styleClass 这个元素的格式表类Type ActionForm bean的完整名称。如果没有设置,将从配置文件获得 
    例如: 
    <html:form action=”validateEmploee.do” method=”post”> 
    </html:form> 
    与表单相关的操作路径是validateEmployee,而表单数据是通过POST传递的。对于这个表单来说,ActionForm bean的其他信息,如bean名称类型,作用域,都是从表单指定操作的ActionMapping中检索得到的: 
    21 
    <form-beans> 
    <form-bean name=”empForm” type=”com.example.EmployeeForm”/> 
    </form-beans> 
    <action-mappings> 
    <action path=”/validateEmployee” 
    type=”com.example.ValidateExampleAction” 
    name=”empForm” 
    scope=”request” 
    input=”/employeeInput.jsp”> 
    <forward name=”success” path=”/employeeOutput.jsp”> 
    </action> 
    </action-mapping> 
    如果配置文件中包含上述信息,并且请求URI的*.do被映射到ActionServlet,与表单相关的ActionForm bean的名称,类型和作用域分别是empForm,com.example.EmployeeForm和request.这些属性也可以使用<html:form>标记属性进行显示的定义。 
    以下标记必须嵌套在<html:form>标记里 
    b) 按钮和取消标记 
    <html:button>标记显示一个按钮控件;<html:cancel>标记显示一个取消按钮。属性如下: 
    属性描述Property 定义在表单被提交时返回到服务器的请求参数的名称Value 按钮上的标记 
      

  3.   

    不行啊! exAction.java 中的 if 条件总为 假 啊! exActionForm_1  总是为  null 啊???