这个问题引起的可能很多,你把tomcat的错误贴上来,可能是Action里的某个变量没有初始化

解决方案 »

  1.   

    package action;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForward;import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;import java.sql.ResultSet;
    import java.sql.SQLException;import db.AddressBookDB;import form.LoginForm;public class LoginAction extends Action { // --------------------------------------------------------- Instance Variables // --------------------------------------------------------- Methods /** 
     * Method execute
     * @param ActionMapping mapping
     * @param ActionForm form
     * @param HttpServletRequest request
     * @param HttpServletResponse response
     * @return ActionForward
     * @throws Exception
     */
    public ActionForward execute(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception {
    LoginForm loginForm = (LoginForm) form;
    String name = loginForm.getName();
    String password = loginForm.getPassword();
    AddressBookDB db = new AddressBookDB();
    try{
    ResultSet rs = db.executeQuery("select * from addrinfo where name='"+name+"' and password='"+password+"'");
    if(rs.next()){
    HttpSession session = request.getSession();
    session.setAttribute("loginForm", name);
    }else{
    ActionErrors errors = new ActionErrors();
    loginForm.reset(mapping,request);
    return (mapping.findForward("failure"));
    }
    }catch(SQLException ex){
    System.out.print("Login Error:" + ex.getMessage());
    }finally{
    db.CloseConn();
    }

    return (mapping.findForward("success"));
    }}
    这是我的action源代码。请你看看
      

  2.   

    你把这句去掉试一下,loginForm.reset(mapping,request);reset方法当再把表单值封装金actionform时已经执行了该方法,此处在执行还行吗?关注中
      

  3.   

    loginForm.reset(mapping,request)struts的RequestUtils类作数据绑定是调用。你不必用它。
    错误可能是你没有用struts的<html:form/>标签,而是用普能的<form name="" action=""/>。
    如果这样,你的方法一句也不得执行,因为struts的RequestUtils类在绑定数据时,form为空。如果你用了<html:form/>,它会按照formBean类实例化一个bean,放到scope中,这个bean就是form,struts的RequestUtils类就可以正确将用户提交的数据绑定到form中,你的方法才有机会执行。
      

  4.   

    谢谢.
    我是用的struts<html:form/>标签
    把loginForm.reset(mapping,request)删除了还是报一样的错.
      

  5.   

    在struts-config中配置的那个formbean还有action中的name能和jsp中的<html:form>和action中的form对应上吗