DWR中怎么取的函数的返回值

lanzhengwu 2008-01-07 03:12:22
我用DWR写了个判断是否登陆的函数:
function isLogin(){
AddHint.getSessionUser(backlogin);
}
function backlogin(info){
if(info==false){
alert('您未登录或者登陆时间过长,请先登录再操作.');
return false;
}
return true;
}

现在的问题是怎么获得 isLogin返回的boolean值呢?
如,我现在要写一个函数:
var islogin=isLogin();
为什么这样获得不了值呢??
...全文
340 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanzhengwu 2008-01-08
  • 打赏
  • 举报
回复
代码不用发了,肯定是对的,没登陆时,就返回的false,上面alert也执行过了..
imA 2008-01-08
  • 打赏
  • 举报
回复
把你的AddHint.getSessionUser方法代码发上来看看,


另外alert('您未登录或者登陆时间过长,请先登录再操作.');这里执行了吗,或者与它对已的else语句块执行了吗?
zdblzwj 2008-01-08
  • 打赏
  • 举报
回复
mark
lanzhengwu 2008-01-08
  • 打赏
  • 举报
回复
这上面的我也知道..看我的代码:
	function isLogin(){
AddHint.getSessionUser(function(info){
if(info==false){
alert('您未登录或者登陆时间过长,请先登录再操作.');
return false;
}else{
return true;
}
}
);
}

调用:
function test(){
var islog=isLogin();
alert(islog);
}

为什么返回会是undefined
lanzhengwu 2008-01-08
  • 打赏
  • 举报
回复
恩,有时问题换个思路就OK了.谢谢imA le ..
imA 2008-01-08
  • 打赏
  • 举报
回复
你可以试试这样写:

function isLogin(){
var result;
AddHint.getSessionUser(function(info){
if(info==false){
alert('您未登录或者登陆时间过长,请先登录再操作.');
//returnfalse;
}
result=info;
}
);
return result;
}

看看这样能不能在test中获取值
lanzhengwu 2008-01-08
  • 打赏
  • 举报
回复
to:piaopiao11 难道就不能获得返回值吗??
to:imA
java 代码也就这样
public boolean getSessionUser(HttpServletRequest request) throws InteriorException{
CpOperate oper = new CpOperate(Constants.C_SESSION_USER);
TblUser user = oper.getLogintblUser(request);
boolean f=false;
if(user!=null)f= true;else f= false;
return f;
}

返回一个boolean值,我现在要在JS中获得这个值,像这样:function test(){
var islog=isLogin();
alert(islog);
}
在 test中怎么获得isLogin();的返回值
piaopiao11 2008-01-08
  • 打赏
  • 举报
回复
你的function是给AddHint.getSessionUser()调用的,返回的true或者false也是在AddHint.getSessionUser()调用时获得
这样的返回不可能再外面获取到的。
imA 2008-01-08
  • 打赏
  • 举报
回复
既然能alert出来false,如果代码没问题那么true也应该alert出来。

你上面说的返回undefined,说明你在js中的某个变量没有定义就引用了,检查一下你的java代码,看看是否和js中的一致。
imA 2008-01-07
  • 打赏
  • 举报
回复
CardrechargeAction.pay(custId,cardId,cardPwd,function(messages){
if(messages.appcode=="0.0"){
document.getElementById("balance").innerText=messages.balance;
document.getElementById("print_balance").innerText=messages.balance;
document.getElementById("cardstatus").innerText=messages.cardstatus;
document.getElementById("lasttime").innerText=messages.lasttime;
document.all.print.disabled=false;
}
document.getElementById("updatetip").innerText=messages.msgtip;
});


其中的messages就是CardrechargeAction的pay方法的返回值,CardrechargeAction的pay方法如下:
	public Map pay(String custId, String cardId, String cardPwd,HttpSession session) {
System.out.println("custId :"+custId);//取得js传递过来的参数
Map messages = new HashMap();
messages.put("balance","hello");
messages.put("cardstatus","haha");
messages.put("lasttime","2007-01-07");
return messages;

}


上面就是一个简单的小例子,在js中的messages就代表pay方法返回的Map messages对象。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧