public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub

User u= this.ubz.getUserByName(userForm.getUser().getName());

if(u!=null && userForm.getPassword()==u.getPassword())
{
//&&u.getPassword()==userForm.getPassword()
request.setAttribute("currentUser", u);

return mapping.findForward("Ok");

}
return mapping.findForward("Error");
}代码如上,红色代码根据用户名查询出用户实体,绿色代码再作密码比对,不知为什么总是跳转到Error页面,如果去掉密码比对部分就没问题,不知是什么问题,请各位指教!

解决方案 »

  1.   

    肯定你的if判断有一个表达式为false呗
      

  2.   


    public ActionForward login(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    UserForm userForm = (UserForm) form;// TODO Auto-generated method stubUser u= this.ubz.getUserByName(userForm.getUser().getName());if(u!=null && (userForm.getPassword()==u.getPassword()))//在这里需要加个括号,要有优先级的,goodluck 。
    {
    //&&u.getPassword()==userForm.getPassword()
    request.setAttribute("currentUser", u);return mapping.findForward("Ok");}
    return mapping.findForward("Error");
    }
      

  3.   


    把参与if运算的所有参数值打印出来吧。System.out.println(u);
    System.out.println(userForm.getPassword());
    System.out.println(u.getPassword());
      

  4.   

    值都没有问题:
    2012-1-4 15:00:14 org.apache.catalina.startup.Catalina start
    信息: Server startup in 18240 ms
    com.myaccount.entity.User@1692a49
    111
    111
      

  5.   

    照你说的加了优先级也不行啊~
    //登录
    public ActionForward login(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) {
    UserForm userForm = (UserForm) form;// TODO Auto-generated method stub

    User u= this.ubz.getUserByName(userForm.getUser().getName());

    if(u!=null && (u.getPassword()==userForm.getPassword()))
    {
    //&&u.getPassword()==userForm.getPassword()
    request.setAttribute("currentUser", u);
    System.out.println(u);
    System.out.println(u.getPassword());
    System.out.println(userForm.getPassword());

    return mapping.findForward("Ok");

    }
    return mapping.findForward("Error");
    }
      

  6.   


    哈哈哈,感谢这位大侠,应该是equals!!