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="loginForm" type="com.pdsu.cbx.LoginForm "></form-bean>
  </form-beans>  <action-mappings >
  <action path="/login" type="com.pdsu.cbx.LoginAction" name="loginForm">
  <forward name="loginSucess" path="/welcome.jsp"></forward>
  <forward name="loginFailure" path="/login.jsp"></forward>
  </action>
  </action-mappings>
  <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
LoginAction.java
package com.pdsu.cbx;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;public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm  loginForm=(LoginForm) form;


if(loginForm.getUsername().equals("admin")&&loginForm.getPassword().equals("123")){
return mapping.findForward("loginSucess");
}
else{
return mapping.findForward("loginFailure");
}


}}
LoginForm.javapackage com.pdsu.cbx;import org.apache.struts.action.ActionForm;public class LoginForm extends ActionForm {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}}
login.jsp<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><html>
  <head>
   
    
    <title>My JSP 'login.jsp' starting page</title>

  </head>
  
  <body>
  <form action="login.do" method="post">
  username:<input type="text" name="username" ><br>
  password:<input type="password" name="password"/><br>
  <input type="submit" value="login"/>
  </form>
  </body>
</html>
错误提示HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause java.lang.NullPointerException
com.pdsu.cbx.LoginAction.execute(LoginAction.java:21)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.

解决方案 »

  1.   

    是不是你的login.jsp的提交改成它看看<form action="<%=request.getContextPath() %>/login.do" method="post">
      

  2.   

    看看你的Action里面,单步进去。。应该是这个Form得到的是Null
      

  3.   

    不是,我最初也是这样写的
    应该在这一块,测试过可以输出,但是方法出错
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    LoginForm loginForm=(LoginForm) form;
    if(loginForm.getUsername().equals("admin")&&loginForm.getPassword().equals("123")){
    return mapping.findForward("loginSucess");
    }
      

  4.   

    对啊,得不到form传过来的数据,怎么改啊,找不到错啊
      

  5.   

    找到了,我的<form-bean name="loginForm" type="com.pdsu.cbx.LoginForm "></form-bean>
    多了个空格