用ext登录如何对返回的错误信息分类,比如没有这个用户,弹出该用户不存在的错误信息,用户名不对弹出用户名不对信息,密码不对弹出密码不对信息。
[b]问题补充:[/b]
to energykey:我是用ext form提交的:[code="java"]
var form = loginform.getForm().submit(
{
waitTitle : '请稍候',
waitMsg : '正在登录......',
timeout:120,
success : function() {
//alert("login success");
window.location = path;
},
failure : function() {
Ext.MessageBox.alert('信息', '登陆失败,用户名或密码不正确!');
}
}
);
}
[/code]如果处理
[b]问题补充:[/b]
to energykey:这样应该可以,不过服务端取信息就有点麻烦那,要查数据库几次,才能判断是用户不存在或用户名对密码不对。
[b]问题补充:[/b]
to energykey:这样应该可以不过服务端返回数据还是有点麻烦,要查表几次才能判断是用户不存在或用户名对密码不对。
使用JSON。
后台返回输出JSON,
{success:true,info:'登录成功'}
{success:false,info:'用户名不存在'}
{success:false,info:'密码错误'}
ext:
[code="js"]
Ext.Ajax
.request( {
url :"login.do",
method :"POST",
params : {
username :username,
password:password
},
callback : function(options, success, response) {
data = Ext.util.JSON.decode(response.responseText);
if (success == true) {
Ext.Msg.alert('Information', data.info);
} else {
Ext.Msg.alert('Error', data.info).setIcon(
Ext.MessageBox.ERROR);
}
}
});
[/code]
回调函数response会输出{success:false,info:'密码错误'}这样的文本,利用data = Ext.util.JSON.decode(response.responseText);将返回文本解析成JSON格式的数组或者对象,然后就可以用data.success,data.info调用获得相应信息。
错误信息再服务器端编辑好保存到json串中
{infos:{msg:'你好坏'}}
Ext.Msg.alert('tip',infos.msg);
//一般action.result.infos.msg
form提交的回调函数有action
用action.result更方便,因为EXT已经将repsponse自动解析为json对象,并封装进了action.result里。
那要看你方法怎么写了。
比如我:
传入name,password,
根据name查询user,返回一个user对象,如果user对象为空,说明用户名不存在。
再进行密码对比,if(!password.equals(user.getPassword())说明用户密码不对。
只有这两种情况,只有用户名不存在或者密码不对的情况,没有你说的用户名不对的情况。
以上只执行了一次查询。
这是编程思路问题。