代码:
1.jsp页面
<form action="login.do?action=check" method="post" >
用户名:<input type="text" name="uName" style="width: 20%" /> <br>
密码:<input type="password" name="uPsw" style="width: 20%" /> <br><br>
<input type="submit" value="确定">
</form>2.form(LoginForm)
package com.tb.shen.struts.form;private String uName;
private String uPsw;
//有set和get方法3.aciton
public ActionForward check(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {

LoginForm loginForm = (LoginForm)form;
String name = loginForm.getUName();
String psw = loginForm.getUPsw();
System.out.println(name);-------------------->获取为null,why?
System.out.println(psw);--------------------->获取为null,why?
boolean b = lService.check(name, psw, request);
if(b) {
System.out.println(request.getParameter("login") );
return mapping.findForward("success");
}
return mapping.findForward("success");
}4.config
  <form-beans>
   <form-bean name="lForm" type="com.tb.shen.struts.form.LoginForm"></form-bean>
  </form-beans>
<action-mappings>
    <action
      name="lForm"
      parameter="action"
      path="/login"
      type="com.tb.shen.struts.LoginAction">
      <forward name="success" path="/Success.jsp" />
    </action>
  </action-mappings>

解决方案 »

  1.   

    action="login.do?action=check"在你的配置文件里面并没有设置action.
    还有你的Action类是继承的动态ACtion类吗?就一个方法的发没必要这么写
    action="login.do"就OK了
      

  2.   


     parameter="action"这个地方不是吗?
    继承的是DispatchAction
      

  3.   

    你确定走到check方法了吗?
    再试着把你LoginForm的变量名都设置成小写。
      

  4.   

    恩啊.确定.而且能到
    boolean b = lService.check(name, psw, request); 可以跳转到下个页面.
      

  5.   

    因为是 action="login.do?action=check" 所以要设置这个参数!
      

  6.   

    LoginForm loginForm = (LoginForm)form; 
    这句话感觉有点问题.绑定