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.
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.
试试用ActioMessages存储ActionError
既然你说按课本敲得,首先你再认真检查一下是否完全相同,如果相同,那么就可以肯定你的环境有问题了
root cause javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
jsp页面怎么写的?
root cause javax.servlet.jsp.JspException: Exception creating bean of class userstruts.UserActionForm: {1}
[/Quote.]
大部分是课本的代码,和作业要求有点不同,改了点,通过数据库验证登录
三个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;
}
}
<%@ 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>
<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>