小弟新手,struts+hibernate弄个登陆的问题,求解
自己随便练习一下
public class LoginAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
if (isCancelled(request)){
return mapping.findForward( "register ");
}
RegisterDao dao = new RegisterDao();
List list=dao.showList();
request.setAttribute( "list ",list);
for (Object n:list){
UserInfo user = (UserInfo)n;
if(loginForm.getUserName()==user.getName() && loginForm.getPassword()==user.getPassword()){
return mapping.findForward( "success ");}
else {return mapping.findForward( "fail ");}
}
return null;
}
}
下面 这个是 showlist的方法:
public List showList() {
DetachedCriteria detachedCriteria = DetachedCriteria
.forClass(UserInfo.class);
session = SessionFactory.getSession();
List list = (List) detachedCriteria.getExecutableCriteria(session).list();
return list;
}
不管怎样都是返回的fail,不知道怎么办了,求高手解答
[解决办法]
条件判断改成以下:
loginForm.getUserName().equels(user.getName()) &&
loginForm.getPassword().equels(user.getPassword())
”==“判断两个参数的地址是都相等
equels()判断地址指向的值是否相等
[解决办法]
字符串比较要使用equals,
基本类型的比较使用 "== "