package com.yourcompany.struts;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionErrors;public class UserActionForm extends ActionForm{ private String password;
private String userName; public String getPassword(){return password;}
public void setPassword(String password){this.password=password;}

public String getUserName(){return userName;}
public void setUserName(String userName){this.userName=userName;}

public ActionErrors validate(ActionMapping actionMapping,HttpServletRequest httpServletRequest)
{
ActionErrors errors=new ActionErrors();
if((userName==null)||(userName.equals(""))){
errors.add(ActionErrors.GLOBAL_MESSAGE,new ActionError("error.name"));
}

if((password==null)||(password.equals(""))){
errors.add(ActionErrors.GLOBAL_MESSAGE,new ActionError("error.password"));
}
return errors;
}

public void reset(ActionMapping actionMapping,HttpServletRequest httpServletRequest){}

}
程序出错,自己查不出来,求各位老大给看看
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
org.apache.jsp.login_jsp._jspService(login_jsp.java:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:487)
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457)
org.apache.jsp.login_jsp._jspx_meth_html_005fform_005f0(login_jsp.java:170)
org.apache.jsp.login_jsp._jspx_meth_html_005fhtml_005f0(login_jsp.java:124)
org.apache.jsp.login_jsp._jspService(login_jsp.java:88)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.

解决方案 »

  1.   

    好像ActionErrors有问题...我们都不用
    试试用ActioMessages存储ActionError
      

  2.   

    这么长的异常%……@#%……¥……%¥……%&%……&……(*&(@
    既然你说按课本敲得,首先你再认真检查一下是否完全相同,如果相同,那么就可以肯定你的环境有问题了
      

  3.   

    struts-config.xml中关于Formbean的配置有问题 ,按照例子检查吧。
      

  4.   

    jsp页面怎么写的?
    root cause  javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
      

  5.   

    [Quote=引用 5 楼 baiyu123 的回复:]
    jsp页面怎么写的?
    root cause  javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
    [/Quote.]
      

  6.   

    这是那个UserActionForm.java的,不是jsp
    大部分是课本的代码,和作业要求有点不同,改了点,通过数据库验证登录
    三个jsp:login.jsp,error.jsp,succes.jsp
    三个java:UserActionForm.java,LoginAction.java,UserBean.java
    //UserActionForm.javapackage com.yourcompany.struts;import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.*;public class UserActionForm extends ActionForm{ /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String password;
    private String userName; public String getPassword(){return password;}
    public void setPassword(String password){this.password=password;}

    public String getUserName(){return userName;}
    public void setUserName(String userName){this.userName=userName;}

    //@SuppressWarnings("deprecation")
    public ActionErrors validate(ActionMapping actionMapping,HttpServletRequest httpServletRequest)
    {
    ActionMessages messages = new ActionMessages();
    if((userName==null)||(userName.equals(""))){
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("messages.name"));
    }

    if((password==null)||(password.equals(""))){
    messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("messages.password"));
    }
    return  (ActionErrors) messages;
    }

    public void reset(ActionMapping actionMapping,HttpServletRequest httpServletRequest){}

    }
    //LoginAction.javapackage com.yourcompany.struts;import javax.servlet.http.*;
    import org.apache.struts.action.*;public class LoginAction extends Action{
    public ActionForward execute(ActionMapping actionMapping,ActionForm actionForm,
    HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse){
    UserActionForm userActionForm=(UserActionForm)actionForm;
    String username=userActionForm.getUserName();
    String password=userActionForm.getPassword();
    UserBean user=new UserBean();
    boolean flag=user.verifyUser(username,password);
    if(flag){return actionMapping.findForward("success");}
    else {return actionMapping.findForward("error");}
    }
    }//UserBean.java
    package com.yourcompany.struts;
    import java.sql.*;public class UserBean { private String dbURL="jdbc:mysql://localhost:3306/test"; // 数据库标识名
    //private String user="root"; // 数据库用户
    //private String password="admin"; // 数据库用户密码 public boolean verifyUser(String userName,String password){
     try {
      Class.forName("com.mysql.jdbc.Driver").newInstance(); 
      Connection con=DriverManager.getConnection(dbURL,"root","admin"); //获取连接
      
      //String name,password; //查询结果
      
      String sqlStr="select * from usr where name="+userName+"and pwd=" +password; //SQL查询语句
      Statement st=con.createStatement(); //获取Statement对象
      ResultSet rs=st.executeQuery(sqlStr); //执行查询
     
      if (rs!=null){return true;}
      else {return false;}
     }
     catch(Exception ex){
      ex.printStackTrace(); //输出出错信息
     }
    return false;
    }

    }
      

  7.   

    login.jsp
    <%@ page language="java" contentType="text/html; charset=gbk"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gbk">
    <title>欢迎</title>
    </head>
    <body>
    <H1>欢迎登录系统</H1>
    <html:errors/>
    <html:form action="/loginAction.do" method="post">
    请输入用户名:<html:text property="userName"/>
    请输入密  码:<html:password property="password"/>
    <html:submit value="登录" property="Submit"/>
    <html:reset value="重置" property="reset"/>
    </html:form>
    </body>
    </html:html>
    success.jsp<%@ page language="java" contentType="text/html; charset=gbk"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>success</title>
    </head>
    <body>
    <h1>登陆成功!</h1>
    </body>
    </html>
    error.jsp<%@ page language="java" contentType="text/html; charset=gbk"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>error</title>
    </head>
    <body> 
    <h1>登录失败</h1>
    </body>
    </html>
      

  8.   

    web.xml<?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>    
        <load-on-startup>2</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
     <jsp-config> 
      <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>
     </jsp-config>
      
    </web-app>
    struts-config.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"><struts-config>
      <data-sources />
      <form-beans>
       <form-bean name="userActionForm" type="userstruts.UserActionForm"/>
      </form-beans>
      <global-exceptions />
      <global-forwards />
      <action-mappings>
       <action name="userActionForm" path="/loginAction" scope="session" 
       type="userstruts.LogicAction" input="/login.jsp">
       <forward name="success" path="/success.jsp"></forward>
       <forward name="error" path="/error.jsp"></forward>
       </action>
      </action-mappings>
      <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
    </struts-config>