
用Struts2+extjs做web项目,后台返回success为false,Ext.ajax.request也用调用success方法
先看一下我的目录结构js代码functiongetAdmin(){Ext.Ajax.request({url:'admin!select',method:'post',w...
先看一下我的目录结构
js代码
function getAdmin(){
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
alert('成功'+obj.success);
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
}
java代码
public String select(){
if(session.get("admin")!=null&&((String)session.get("admin")).length()!=0){
sql="select userId,userName,passWd from admin";
try {
rs=Dao.initConnection().createStatement().executeQuery(sql);
infoList=new ArrayList<AdminInfo>();
while(rs.next()){
AdminInfo adminInfo=new AdminInfo();
adminInfo.setUserId(rs.getString(1));
adminInfo.setUserName(rs.getString(2));
adminInfo.setPassWd(rs.getString(3));
infoList.add(adminInfo);
}
success=true;
} catch (Exception e) {
success=false;
Msg="数据加载失败,请重新加载";
e.printStackTrace();
}
result="success";
}else{
success=false;
Msg="对不起,你还没有登录,请先登录";
result="input";
}
System.out.println("success="+success+"result="+result+":msg"+Msg+":session="+session);
return result;
}
我的本意是在admin.jsp页面访问后台的时候,首先验证用户是否登录,如果登录才可能 进行一步,没有登录后返回登录页面,
如果是从index.jsp页面通过正常的登录到达admin.jsp的话,这是行得通的,但是如果直接访问/admin/admin.jsp的话,即使服务器返回的success=false,它仍会执行s
js代码中 ext.ajax,request({})中的success方法 ,
请问各个大虾 这是怎么回事
项目结构
通过正常登录 好像也不行,总是执行success 展开
js代码
function getAdmin(){
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
alert('成功'+obj.success);
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
}
java代码
public String select(){
if(session.get("admin")!=null&&((String)session.get("admin")).length()!=0){
sql="select userId,userName,passWd from admin";
try {
rs=Dao.initConnection().createStatement().executeQuery(sql);
infoList=new ArrayList<AdminInfo>();
while(rs.next()){
AdminInfo adminInfo=new AdminInfo();
adminInfo.setUserId(rs.getString(1));
adminInfo.setUserName(rs.getString(2));
adminInfo.setPassWd(rs.getString(3));
infoList.add(adminInfo);
}
success=true;
} catch (Exception e) {
success=false;
Msg="数据加载失败,请重新加载";
e.printStackTrace();
}
result="success";
}else{
success=false;
Msg="对不起,你还没有登录,请先登录";
result="input";
}
System.out.println("success="+success+"result="+result+":msg"+Msg+":session="+session);
return result;
}
我的本意是在admin.jsp页面访问后台的时候,首先验证用户是否登录,如果登录才可能 进行一步,没有登录后返回登录页面,
如果是从index.jsp页面通过正常的登录到达admin.jsp的话,这是行得通的,但是如果直接访问/admin/admin.jsp的话,即使服务器返回的success=false,它仍会执行s
js代码中 ext.ajax,request({})中的success方法 ,
请问各个大虾 这是怎么回事
项目结构
通过正常登录 好像也不行,总是执行success 展开
3个回答
展开全部
function getAdmin(){
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
alert('成功'+obj.success);
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
}
这里的success是表示你的服务器响应状态值为200.即表示服务器成功响应。不管你响应给客户端的内容是什么,只要响应成功就会执行这个success,跟你返回的内容无关。
至于你想根据你返回的参数success值进行判断分别处理,你得在上面的success中进行判断处理。比如像这样:
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
if(obj.success == "true") {//如果你处理的JSON串中true不是字符串,就obj.success == true
//你后台返回success 为 false时执行的代码
} else {
//你后台返回success 为 false时执行的代码
}
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
还有个问题想问下楼主,你是怎么响应客户端信息的???你那个方法不能返回给客户端信息列。
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
alert('成功'+obj.success);
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
}
这里的success是表示你的服务器响应状态值为200.即表示服务器成功响应。不管你响应给客户端的内容是什么,只要响应成功就会执行这个success,跟你返回的内容无关。
至于你想根据你返回的参数success值进行判断分别处理,你得在上面的success中进行判断处理。比如像这样:
Ext.Ajax.request({
url:'admin!select',
method:'post',
waitMsg:'数据加载中,请稍后....',
success:function(response,opts){
var obj=Ext.decode(response.responseText);
if(obj.success == "true") {//如果你处理的JSON串中true不是字符串,就obj.success == true
//你后台返回success 为 false时执行的代码
} else {
//你后台返回success 为 false时执行的代码
}
},
failure:function(response,opts){
var obj=Ext.decode(response.responseText);
alert(obj.result);
}
})
还有个问题想问下楼主,你是怎么响应客户端信息的???你那个方法不能返回给客户端信息列。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询