web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <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>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</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>
</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://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<form-beans>
<form-bean name="MyForm" type="com.wentian.form.MyForm"></form-bean>

<form-bean name="LoginForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String" />
<form-property name="pass" type="java.lang.String" />
</form-bean>
</form-beans> <action-mappings>
<action name="MyForm" path="/log" type="com.wentian.actions.MyAction" scope="request">
<forward name="success" path="/success.jsp"></forward>
</action>

<action name="Loginform" path="/login" type="com.wentian.actions.LogServlet" scope="request">
<forward name="welcome" path="/WEB-INF/jsp/welcome.jsp" />
</action>
</action-mappings>
</struts-config>LogServlet代码:package com.wentian.actions;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 org.apache.struts.action.DynaActionForm;public class LogServlet extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
DynaActionForm daf = (DynaActionForm)form;
String name = (String)daf.get("username");
String pass = daf.getString("pass");
request.setAttribute("name",name);
request.setAttribute("pass", pass);
return mapping.findForward("welcome");
}}
login.jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <head><title>My JSP 'index.jsp' starting page</title></head>
  
  <body topmargin="100" leftmargin="150">
    <form action="login.do" method="post">
     用户:<input type="text" name="username"/><br/>
     密码:<input type="password" name="pass"/><br/>
     <input type="submit" value="登陆"/>
    </form>
  </body>
</html>

解决方案 »

  1.   

    运行的时候在LogServlet里面的“ String name = (String)daf.get("username");
    ”处报空指针错误。谁帮忙解决一下
      

  2.   

    基本上不用FORM,不过以前用也是用的getter方法,get("***")这类的方法还是没有用过
      

  3.   

    <form-bean name="LoginForm" type="org.apache.struts.action.DynaActionForm">
                    <form-property name="username" type="java.lang.String" />
                    <form-property name="pass" type="java.lang.String" />
                </form-bean> <action name="Loginform" path="/login" type="com.wentian.actions.LogServlet" scope="request">
                <forward name="welcome" path="/WEB-INF/jsp/welcome.jsp" />
            </action>看出区别了没有?
    DynaActionForm daf = (DynaActionForm)form;
    你这句话daf应该是null。你仔细跟踪下
      

  4.   

    名字不一样,所以他找不到form
      

  5.   

    +1
    挺细致的。应该是是name不同造成的