package com.bjsxt.structs;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 {
/**
 * 用户登录的Action
 */ public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginActionForm lgf=(LoginActionForm)form;
String username=lgf.getUsrename();
String password=lgf.getPassword();
if("admin".equals(username)&&"admin".equals(password)){
//成功则转向成功登录页面
return mapping.findForward("success");
}else{
//失败则转向错误提示页面
return mapping.findForward("error");
}
}}
请问各位大哥,我编写了个登录小项目,但是不知道为什么老是跳转到登录失败的页面,配置文件没问题,但是就不知道为什么不能转向成功页面,我估计是这个类有问题。
下面是我附上的配置文件,是用stuts的框架完成的。工程名是sturcts_login包名是com.bjsxt.structs
<form-beans>
<form-bean name="loginForm" type="com.bjsxt.structs.LoginActionForm"></form-bean>
</form-beans> <action-mappings>
<action path="/login"
type="com.bjsxt.structs.LoginAction"
name="loginForm"
scope="request"
>
<forward name="success" path="/login_success.jsp"></forward>
<forward name="error" path="/login_lost.jsp"></forward>
</action>
</action-mappings>

解决方案 »

  1.   

    页面上要有
    username 和password 的表单元素注意大小写。初步分析是你后台form没有接收到用户名密码。
    楼主检查下jsp里写的是否正确。或者
    后台打出username和password看看有没有值。
      

  2.   

    对,我打印出username的时候接收到空的,所以估计是没有接收到username,那么请问是哪里出错了呢?
      

  3.   

    public class LoginActionForm extends ActionForm { //用于获取Action的数据,这里的属性要跟表单上的属性名称一样
    private String usrename;
    private String password;
    public String getUsrename() {
    return usrename;
    }
    public void setUsrename(String usrename) {
    this.usrename = usrename;
    }
    public String getPassword() {
    return password;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    }
    我另外写了一个form的
      

  4.   

    null用户登录成功!密码是:admin 输出结果是这个,所以估计是 user没有成功接收到!
      

  5.   

    把Form里面的属性直接写在Action类里面
      

  6.   


    注意 username 和 usrename 是有本质区别的。你页面上写的是username吧。