在jsp页面输入完信息后一提交就进入.do页面(空白页面,url显示的那个do),不能跳转到下一页面。正确的情况应该是forword到另一个jsp.
web.xml:
<?xm version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="java.sun.com/xml/ns/j2eeweb-app_2_4.xsd"
version="2.4">
<display-name>Welcome to Tomcat</display-name>
<description>
Forum
</description>
<resource-ref>
  <description>SqlServer Datasource </description>
  <res-ref-name>jdbc/elaborate</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref><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>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>DownloadServlet</servlet-name>
<servlet-class>com.protoss.download.Download</servlet-class>
</servlet>
<servlet>
<servlet-name>DownloadServlet2</servlet-name>
<servlet-class>com.protoss.download.Download2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DownloadServlet</servlet-name>
<url-pattern>/download</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DownloadServlet2</servlet-name>
<url-pattern>/download2</url-pattern>
</servlet-mapping>
<!--Struts Tag Library Descriptions-->
<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>/jstl/c</taglib-uri>
    <taglib-location>/WEB-INF/tld/c.tld</taglib-location>
  </taglib>
<taglib>
<taglib-uri>/struts-temlpate</taglib-uri>
<taglib-location>/WEB-INF/tld/struts-template.tld</taglib-location>
</taglib>
</web-app>struts-config.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?><!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
   <struts-config>
 <form-beans>
   <form-bean name="newTopicForm" type="com.protoss.forum.NewTopicForm"/>
    </form-beans>
 <global-forwards>
  <forward name="newTopicCreated" path="/viewNewTopic.jsp"/>
 </global-forwards>
 <action-mappings>
  <action path="/createNewTopic" 
         type="com.protoss.forum.AddNewTopic"
                 name="newTopicForm" 
                 scope="request"
                 validate="true"
                 input="/createNewTopic.jsp"> 
         <forward
                    name="success"
                    path="/newTopicCreated.jsp"/>         
        </action>
      </action-mappings>
 <message-resources parameter="ApplicationResources"/>  
  </struts-config>

解决方案 »

  1.   

    应该是处理业务的action里出错了,看看你action代码里哪里没有抓异常
      

  2.   

    Action 出错
    或者你的config配置错误
      

  3.   

    处理业务的action如下:
    package com.protoss.forum;
    import org.apache.struts.action.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public final class AddNewTopic extends Action {    public ActionForward execute(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response)
            throws Exception {
            NewTopicBean service = new NewTopicBean();
            NewTopic topic = new NewTopic();
            NewTopicForm topicForm = (NewTopicForm) form;
            topic=topicForm.getNewTopic();
            try {
                service.addNewTopic(topic);
                ActionMessages messages = new ActionMessages();
                ActionMessage message = new ActionMessage("message.topic.insert.success",topic.getTitle() );
                messages.add( ActionMessages.GLOBAL_MESSAGE, message );
                saveMessages( request, messages );
                request.setAttribute("topic",topic);
                return (mapping.findForward("success"));
            }
            catch( Exception de ) {
                ActionErrors errors = new ActionErrors();
                ActionError error = new ActionError("error.topic.databaseException");
                errors.add( ActionErrors.GLOBAL_ERROR, error );
                saveErrors( request, errors );
                return (mapping.findForward("error"));
            }
        }
    }
      

  4.   

    还有这个:
    package com.protoss.forum;
    import com.protoss.util.DatabaseConn1;
    import java.sql.*;
    import javax.sql.*;
    import java.io.*;
    import java.util.*;
    public class NewTopicBean
    {
    private   Connection conn ;
    public NewTopicBean()throws Exception
    {
    this.conn=DatabaseConn1.getConnection();
    }
    public void addNewTopic(NewTopic topic)throws Exception
    {
         this.executeHelper("insert into newtopic (FTitle,FContent,FAuthor,FScore,FType) values('"+topic.getTitle()+"','"+topic.getContent()+"',"+topic.getAuthor()+",'"+topic.getScore()+"',"+topic.getType()+")");
    }
    public Collection getNewTopic()throws Exception
    {
    return this.getNewTopicHelper("select * from newtopic");
     }
      
     public Collection getNoReplyTopic()throws Exception
    {
    return this.getNewTopicHelper("select * from newtopic where  FReply='0'");
     }
     
     public void deleteNoReplyTopic(int reply)throws Exception
     {
      if(reply==0){
      try
      {
      this.executeHelper("delete from newtopic where FReply='"+reply+"'");
      }
      catch(Exception e)
      {
      e.printStackTrace();
      throw e;
      }
     }
     }
      private Collection getNewTopicHelper(String sql)throws Exception
      {
        Statement stmt=conn.createStatement();
         ResultSet rst=stmt.executeQuery(sql);
         Collection ret=new ArrayList();
         while(rst.next())
         {
          NewTopic temp=new NewTopic();
          temp.setId(rst.getInt("FId"));
          temp.setTitle(rst.getString("FTitle"));
          temp.setContent(rst.getString("FContent"));
          temp.setAuthor(rst.getString("FAuthor"));
          temp.setScore(rst.getInt("FScore"));
          temp.setType(rst.getString("FType"));
            ret.add(temp);
         }
         return ret;
      }
      
      private void executeHelper(String sql)throws Exception
      {
        Statement stmt=conn.createStatement();
     stmt.executeUpdate(sql);
      }
    }
      

  5.   

    我把所有的和数据库相关的都try{}catch{}了。但是依旧,不向下一个进行,和下一个有关系吗?因为下一个页面还没有做好
      

  6.   

    我测试了一下,异常如下:
    exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause java.lang.NullPointerException
    org.apache.jsp.error_jsp._jspService(error_jsp.java:55)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
    org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
    org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
    org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
    org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)这是为什么
      

  7.   

    跪求解决方法了,谁能说一下struts是如何参数的传递过程,像jsp中request获得参数一样,struts中action,config,actionform,页面之间参数是如何传递。