看你的struts-config.xml和action中的forward是否有问题!!

解决方案 »

  1.   

    我把源代码粘上来,你们看一下。:
    hello.jsp 也就是login.jsp
    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html:html >
      <head>
        <title>hello.jsp</title>   
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
      </head>
      <body>
        <html:form action="/hello" method="post" >
          <table border="0">
            <tr>
              <td>Login:</td>
              <td><html:text property="username" /></td>
            </tr>
            <tr>
              <td>Password:</td>
              <td><html:password property="password" /></td>
            </tr>
            <tr>
              <td colspan="2" align="center"><html:submit value="提交" /><html:submit value="注册"/><html:reset value="重置"/></td>
            </tr>
          </table>
        </html:form>
      </body>
    </html:html>HelloForm:package com.yourcompany.struts.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;/** 
     * MyEclipse Struts
     * Creation date: 06-08-2006
     * 
     * XDoclet definition:
     * @struts.form name="helloForm"
     */
    public class HelloForm extends ActionForm { /**
     * 
     */
    // --------------------------------------------------------- Instance Variables private static final long serialVersionUID = 1L;
    private String password;
    private String username; // --------------------------------------------------------- Methods /** 
     * Method validate
     * @param mapping
     * @param request
     * @return ActionErrors
     */
    public ActionErrors validate(
    ActionMapping mapping,
    HttpServletRequest request) { // TODO Auto-generated method stub
    return null;
    } /** 
     * Method reset
     * @param mapping
     * @param request
     */
    public void reset(ActionMapping mapping, HttpServletRequest request) { this.username=null;
    this.password=null;
    } /** 
     * Returns the password.
     * @return String
     */
    public String getPassword() {
    return password;
    } /** 
     * Set the password.
     * @param password The password to set
     */
    public void setPassword(String password) {
    this.password = password;
    } /** 
     * Returns the username.
     * @return String
     */
    public String getUsername() {
    return username;
    } /** 
     * Set the username.
     * @param username The username to set
     */
    public void setUsername(String username) {
    this.username = username;
    }}HelloAction :package com.yourcompany.struts.action;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;import com.yourcompany.struts.form.HelloForm;/** 
     * MyEclipse Struts
     * Creation date: 06-08-2006
     * 
     * XDoclet definition:
     * @struts.action path="/hello" name="helloForm" input="/form/hello.jsp" scope="request" validate="true"
     */
    public class HelloAction extends Action { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods /** 
     * Method execute
     * @param mapping
     * @param form
     * @param request
     * @param response
     * @return ActionForward
     */
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) {
    HelloForm helloForm = (HelloForm) form;
    if(helloForm.getUsername().equals("admin")&&helloForm.getPassword().equals("123"))
    {
    return (mapping.findForward("success"));
    }
    else
    {
    return (mapping.findForward("error"));
    }

    }
    }
    struts-config.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <!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>
      <data-sources />
      <form-beans >
        <form-bean name="helloForm" type="com.yourcompany.struts.form.HelloForm" />  </form-beans>  <global-exceptions />
      <global-forwards />
      <action-mappings >
        <action
          name="helloForm"
          path="/hello"
          scope="request"
          type="com.yourcompany.struts.action.HelloAction" >
          <forward name="success" path="/success.jsp" />
          <forward name="error" path="/error.jsp" />
          
         </action>  </action-mappings>  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    </struts-config>当然还有 success.jsp。 error.jsp和reg.jsp这些肯定没问题的。所以没有粘上来
    高手帮我看看问题
      

  2.   

    看看你的Hello.jsp(  <html:form action="/hello" method="post" >
    ), 当你点注册时,你的Form Action 也和Login一样指向了你的 /hello Action, 
    而你的HelloAction.java 并不知道如何处理 (因为没有Username和Password),当然是传向error.jsp 了。
      

  3.   

    点击注册时,直接链接到reg.jsp就行了
    不要 <html:submit value="注册"/>  submit
      

  4.   

    jhoter() 你说的这种方法,怎么写是不是
    <a href="/reg.jsp">注册</a>是这样吗?那样的话,它不就不是按钮了吗?有别的方法吗?
      

  5.   

    jsp: 
    <input type="button" name="button" value="注册" onclick="addUser()" >
    <script language="JavaScript">
    function addUser()
     { 
       document.adminUserInfoForm.action="XXX.jsp";//你要转的地方
       document.adminUserInfoForm.submit();
    }
    </script>