代码如下:
登陆界面(index.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login Form</title>
</head>
<body>
<form name="loginForm" action="login.do" method="post" >
<table width="351" height="274" style="width: 392px; height: 274px;">
<tr>用户名:<input name="userName" type=text >
密码:<input name="password" type=password ></tr>
<br><input value="提交" type="submit" >
<input value="重置" type="reset" >
</table>
</form>
</body>
</html>loginaction.java
package com.web.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.dao.LoginDao;
import com.web.form.LoginForm;public class LoginAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
LoginForm loginForm = (LoginForm) form;--这一步的时候,loginForm 为 null,然后就报空指针错误了
LoginDao loginDao = new LoginDao();
if (loginDao.isLogin(loginForm)){
return mapping.findForward("sucess");
}
else{
return mapping.findForward("fail");
}
}
}
loginform.java
package com.web.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class LoginForm extends ActionForm { private String password; private String userName; public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors() ;
if(this.userName==null||"".equals(this.userName))
{
errors.add("userName",new ActionMessage("userName.null")) ;
}
if(this.password==null||"".equals(this.password))
{
errors.add("password",new ActionMessage("password.null")) ;
}
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
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;
}
}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>
<form-beans>
<form-bean name="loginForm"
type="com.web.form.loginForm"/>
</form-beans>
<action-mappings>
<action path="/login"
attribute="loginForm"
name="loginForm"
scope="request"
type="com.web.action.LoginAction">
<forward name="success" path="/jsp/sucess.jsp"/>
<forward name="fail" path="/jsp/failed.jsp"/>
</action>
</action-mappings> </struts-config>
现在的问题就是执行到loginaction的时候,LoginForm loginForm = (LoginForm) form;执行之后,loginForm为空。一直找不到原因
String userName=request.getParameter("userName");
我加了一个这个,userName可以获取到值。
谢谢大家了,帮忙看看怎么回事,我是找了很久都没有找出来原因
登陆界面(index.jsp)
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login Form</title>
</head>
<body>
<form name="loginForm" action="login.do" method="post" >
<table width="351" height="274" style="width: 392px; height: 274px;">
<tr>用户名:<input name="userName" type=text >
密码:<input name="password" type=password ></tr>
<br><input value="提交" type="submit" >
<input value="重置" type="reset" >
</table>
</form>
</body>
</html>loginaction.java
package com.web.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.dao.LoginDao;
import com.web.form.LoginForm;public class LoginAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
LoginForm loginForm = (LoginForm) form;--这一步的时候,loginForm 为 null,然后就报空指针错误了
LoginDao loginDao = new LoginDao();
if (loginDao.isLogin(loginForm)){
return mapping.findForward("sucess");
}
else{
return mapping.findForward("fail");
}
}
}
loginform.java
package com.web.form;import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class LoginForm extends ActionForm { private String password; private String userName; public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors() ;
if(this.userName==null||"".equals(this.userName))
{
errors.add("userName",new ActionMessage("userName.null")) ;
}
if(this.password==null||"".equals(this.password))
{
errors.add("password",new ActionMessage("password.null")) ;
}
return errors;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
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;
}
}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>
<form-beans>
<form-bean name="loginForm"
type="com.web.form.loginForm"/>
</form-beans>
<action-mappings>
<action path="/login"
attribute="loginForm"
name="loginForm"
scope="request"
type="com.web.action.LoginAction">
<forward name="success" path="/jsp/sucess.jsp"/>
<forward name="fail" path="/jsp/failed.jsp"/>
</action>
</action-mappings> </struts-config>
现在的问题就是执行到loginaction的时候,LoginForm loginForm = (LoginForm) form;执行之后,loginForm为空。一直找不到原因
String userName=request.getParameter("userName");
我加了一个这个,userName可以获取到值。
谢谢大家了,帮忙看看怎么回事,我是找了很久都没有找出来原因
配置Form时写错了 type="com.web.form.loginForm"应该是 type="com.web.form.LoginForm"
借助Myeclipse创建form,action.配置文件就不会那么容易出错
<forward name="success" path="/jsp/sucess.jsp"/> 不匹配哦<form-bean name="loginForm" type="com.web.form.loginForm"/> 楼上的