如果不是出现的404找不到页面的错误,那就应该是viewuser.jsp 页面里的错误

解决方案 »

  1.   

    viewuser.jsp里用了struts的标签,页面前没有声明?
      

  2.   

    <%@ page language="java"  contentType="text/html; charset=gb2312" %>
    <%@ taglib uri="/struts-logic" prefix="logic"%>
    <%@ taglib uri="/struts-bean" prefix="bean"%>
    <%@ taglib uri="/struts-html" prefix="html"%>
    <html:html locale="true">
    <head>
    <html:base/></head>
    <body>
    测试Struts
    </body>
    </html:html>
      

  3.   

    我觉得有几个可疑的错误!
    1, 看一下你的taglib代码
    <%@ taglib uri="/struts-logic" prefix="logic"%>
    <%@ taglib uri="/struts-bean" prefix="bean"%>
    <%@ taglib uri="/struts-html" prefix="html"%>
    很是不解.通常的做法是
    <%@ 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" %>
    并且把struts-bean.tld等tld文件拷进/WEB-INF目录.同时在web.xml下加以声明.web.xml声明如下
    <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>
    2. form的action问题.
    <html:form action="createuser.do" method="GET" >
    应该改成是<html:form action="/createuser.do" method="GET" >
      

  4.   

    这是我的web.xml的内容,我是照一本书写的.刚照你的方法改了,还是不行啊<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <display-name>Struts Application</display-name>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
          <param-name>application</param-name>
          <param-value>ApplicationResources</param-value>
        </init-param>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
          <param-name>debug</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>detail</param-name>
          <param-value>2</param-value>
        </init-param>
        <init-param>
          <param-name>port</param-name>
          <param-value>7001</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
      <!-- Standard Action Servlet Mapping-->
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
    <!-- the Usual Welcome File List-->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      <!--  Struts Tag Library Descriptors -->  <taglib>
        <taglib-uri>/struts-bean</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/struts-html</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/struts-logic</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location>
      </taglib>
       <taglib>
        <taglib-uri>/struts-nested</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location>
      </taglib>  <taglib>
        <taglib-uri>/struts-tiles</taglib-uri>
        <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/struts-template</taglib-uri>
        <taglib-location>/WEB-INF/tld/tld/struts-template.tld</taglib-location>
      </taglib>
    <servlet>
        <servlet-name>Test</servlet-name>
        <servlet-class>com.cstmail.login.Test</servlet-class>
    </servlet> <servlet-mapping>
        <servlet-name>Test</servlet-name>
        <url-pattern>/servlet/test</url-pattern>
      </servlet-mapping>
         <servlet>
            <servlet-name>org.apache.jsp.index_jsp</servlet-name>
            <servlet-class>org.apache.jsp.index_jsp</servlet-class>
        </servlet>    <servlet-mapping>
            <servlet-name>org.apache.jsp.index_jsp</servlet-name>
            <url-pattern>/index.jsp</url-pattern>
        </servlet-mapping>
    </web-app>
      

  5.   

    <%@ page language="java"  contentType="text/html; charset=gb2312" %>
    <%@ taglib uri="/struts-logic" prefix="logic"%>
    <%@ taglib uri="/struts-bean" prefix="bean"%>
    <%@ taglib uri="/struts-html" prefix="html"%>
    <html:html locale="true">
    <head>
    <html:base/></head>
    <body>
    测试Struts
    </body>
    </html:html>这是test1.jsp
      

  6.   

    导向空白页的url如下:
    http://localhost/test/createuser.do?user.uid=yu&user.password=yu&user.age=0&submit=Submit
      

  7.   

    就是导向一个空白页面,没有导向test1.jsp,没有错误提示,
      

  8.   

    ///就是导向一个空白页面,没有导向test1.jsp,没有错误提示,导向的不是空白页面,是页面在编译或者执行过程中出现错误。
    就会导致没有信息输出。 
      

  9.   

    test1.jsp单独运行是正确的,能显示
      

  10.   

    <!--注意这里了-->
     <action  path="/createuser"  type="com.cstmail.login.UserAction"          
                       name="userForm"     scope="request"
                       validate="true"     input="/createuser.jsp">       
                  <forward name="userCreated" path="/viewuser.jsp"/> 
              </action>
    <!--注意这里了-->
    你的配置是没有错的!出现空白页面是找不到你要转的页面。你这样修改:把:/createuser 修改为:/test/createuser  就可以了!是的你的path配置错了,/createuser的意思是:项目根目录的,但是你的页面是在根目录下的:test目录下,所以你的路径错了!呵呵! 
      

  11.   

    input="/createuser.jsp">       
    path="/viewuser.jsp"/> 
    也要做相应的修改!
      

  12.   

    javax.servlet.ServletException: Cannot retrieve mapping for action /createuser
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.createuser_jsp._jspService(createuser_jsp.java:92)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause javax.servlet.jsp.JspException: Cannot retrieve mapping for action /createuser
    org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:721)
    org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:417)
    org.apache.jsp.createuser_jsp._jspx_meth_html_form_0(createuser_jsp.java:178)
    org.apache.jsp.createuser_jsp._jspx_meth_html_html_0(createuser_jsp.java:123)
    org.apache.jsp.createuser_jsp._jspService(createuser_jsp.java:83)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
      

  13.   

    后改为createuser.jsp :<html:form action="/createuser.do"  method="GET"> <struts-config>
     <form-beans>
           <form-bean name="userForm" type="com.cstmail.login.UserForm"/>
              </form-beans> <global-forwards>
          <forward name="userCreated" path="/test1.jsp"/> 
         </global-forwards>
              <action-mappings>
              <action  path="/createuser"  type="com.cstmail.login.UserAction"          
                       name="userForm"     scope="request"
                       validate="true"     input="/test/createuser.jsp">       
                  <forward name="userCreated" path="/test/test1.jsp"/> 
              </action>
         </action-mappings>
         <message-resources parameter="ApplicationResources"/>
    </struts-config>
    还是先前的错误,如果修改了path,连createuser.jsp都不出来