我有一个登录页面login.jsp有一个用户框,一个密码框,对应一个FOMR和一个ACTION。
如:<tr>
<td width="207" height="45" align="right" valign="bottom" class="STYLE3" style="padding-right:40px;">用户名</td>
<td width="294" valign="bottom"><html:text property="userName" maxlength="100" style="width:150px"/> <span class="errorMsg"><html:errors property="userNameNull" bundle="login" /><span></td>
</tr>
<tr>
<td height="45" align="right" valign="bottom" class="STYLE3" style="padding-right:40px;">密 码</td>
<td valign="bottom"><html:password property="passWord" maxlength="100" style="width:150px"/> <span class="errorMsg"><html:errors property="passWordNull" bundle="login" /></span><span class="errorMsg"><html:errors property="userNameOrPasswordError" bundle="login" /></span></td>
</tr>
html:errors property="userNameNull" bundle="login" />用于用户名为空时返回错误信息
html:errors property="passWordNull" bundle="login" />用于密码为空时返回错误信息
<html:errors property="userNameOrPasswordError" bundle="login" />这个是用户名和密码都不为空提交后,但是在数据库中找不到用户时,即用户名或密码错误 时的返回信息
Action中处理如下:
if(userMge.checkUser(userName,md5.getMD5ofStr(passWord)))
{
Map map = userMge.userLogin(userName,md5.getMD5ofStr(passWord));
//session范围内保存用户信息
session.setAttribute("userId",(String)map.get("filed1"));
session.setAttribute("userpost",(String)map.get("filed2"));
session.setAttribute("username",(String)map.get("filed3"));
session.setAttribute("password", (String)map.get("filed4"));
System.out.print("if");
//从request范围内删除ActionForm Bean
request.removeAttribute(mapping.getAttribute());
request.setAttribute("loginMessage", "loginSuccess");
return (mapping.findForward("userLoginSuccess"));
}
else
{
System.out.print("else");
request.removeAttribute(mapping.getAttribute());
errors.add("userNameOrPasswordError", new ActionMessage("login.userNameOrPassword.inputError"));
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
用户名密码经过验证不对时,执行else{}但是现在在login.jsp页面我用户密码都不为空,但是是错的,提交一次就提示一次,点N次就可以出来N个错误提示,我只需要一个呀。。这怎么回事?高手帮忙呀。怪!!!!!!!
如:<tr>
<td width="207" height="45" align="right" valign="bottom" class="STYLE3" style="padding-right:40px;">用户名</td>
<td width="294" valign="bottom"><html:text property="userName" maxlength="100" style="width:150px"/> <span class="errorMsg"><html:errors property="userNameNull" bundle="login" /><span></td>
</tr>
<tr>
<td height="45" align="right" valign="bottom" class="STYLE3" style="padding-right:40px;">密 码</td>
<td valign="bottom"><html:password property="passWord" maxlength="100" style="width:150px"/> <span class="errorMsg"><html:errors property="passWordNull" bundle="login" /></span><span class="errorMsg"><html:errors property="userNameOrPasswordError" bundle="login" /></span></td>
</tr>
html:errors property="userNameNull" bundle="login" />用于用户名为空时返回错误信息
html:errors property="passWordNull" bundle="login" />用于密码为空时返回错误信息
<html:errors property="userNameOrPasswordError" bundle="login" />这个是用户名和密码都不为空提交后,但是在数据库中找不到用户时,即用户名或密码错误 时的返回信息
Action中处理如下:
if(userMge.checkUser(userName,md5.getMD5ofStr(passWord)))
{
Map map = userMge.userLogin(userName,md5.getMD5ofStr(passWord));
//session范围内保存用户信息
session.setAttribute("userId",(String)map.get("filed1"));
session.setAttribute("userpost",(String)map.get("filed2"));
session.setAttribute("username",(String)map.get("filed3"));
session.setAttribute("password", (String)map.get("filed4"));
System.out.print("if");
//从request范围内删除ActionForm Bean
request.removeAttribute(mapping.getAttribute());
request.setAttribute("loginMessage", "loginSuccess");
return (mapping.findForward("userLoginSuccess"));
}
else
{
System.out.print("else");
request.removeAttribute(mapping.getAttribute());
errors.add("userNameOrPasswordError", new ActionMessage("login.userNameOrPassword.inputError"));
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
用户名密码经过验证不对时,执行else{}但是现在在login.jsp页面我用户密码都不为空,但是是错的,提交一次就提示一次,点N次就可以出来N个错误提示,我只需要一个呀。。这怎么回事?高手帮忙呀。怪!!!!!!!
解决方案 »
- 关于Struts2.0的 <s:property>的 问题
- 大家帮忙看看这bug?怎么解决
- Myeclipse jsp design 编写JSP 文件 报当前浏览平台错误 在线等
- 求救:jsp里老是加载不了struts标签!
- tomcate下中文乱码问题
- 更新数据时 没有被更新的过的字段都变为NULL?
- [散分]本人刚做了个网站,大家来发表下高见 up有分
- 生成树状菜单问题?
- javaBean 得使用问题?
- jquery 如何根据值自动选择一个下拉列表和传递过来值一样的那项
- 一台电脑登陆两个角色,二者的权限出现串联,有什么办法解决?
- sqlserver2000的jdbc驱动一定要用.exe安装一次么?
<html:error/>删除
<html:errors property="userNameNull" bundle="login" />用于用户名为空时返回错误信息
<html:errors property="passWordNull" bundle="login" />用于密码为空时返回错误信息
<html:errors property="userNameOrPasswordError" bundle="login" />
Map map = userMge.userLogin(userName,md5.getMD5ofStr(passWord));
//if(!userMge.checkUser(userName,md5.getMD5ofStr(passWord)))
if(map== null){
request.removeAttribute(mapping.getAttribute());
errors.add("userNameOrPasswordError", new ActionMessage("login.userNameOrPassword.inputError"));
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
//session范围内保存用户信息
HttpSession session = request.getSession();
session.setAttribute("userId",(String)map.get("filed1"));
session.setAttribute("userpost",(String)map.get("filed2"));
session.setAttribute("username",(String)map.get("filed3"));
session.setAttribute("password", (String)map.get("filed4"));
System.out.print("if");
//从request范围内删除ActionForm Bean
request.removeAttribute(mapping.getAttribute());
// request.setAttribute("loginMessage", "loginSuccess");
return (mapping.findForward("userLoginSuccess"));
这是一段关键的ACTION不在错在那里。当map为空时返回前台JSP页面时错误信息,你点几次就出现几次,如:
用户名或密码错误用户名或密码错误用户名或密码错误用户名或密码错误,,,,这是我输入错误的用户名和密码后连点4次出现的提示,可我只需要显示一次呀。怎么回事?