Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何使用Primefaces发送ajax回调参数?_Jsf_Primefaces - Fatal编程技术网

Jsf 如何使用Primefaces发送ajax回调参数?

Jsf 如何使用Primefaces发送ajax回调参数?,jsf,primefaces,Jsf,Primefaces,我正试图用RequestContext发送一个Ajax回调,但无法正常工作 我尝试了,但是javascript函数中的“args.loggedIn”始终未定义,而“args”是一个对象 这是我的密码: dialogLogin.xhtml: 点击 函数handleLoginRequest(xhr,status,args){ 如果(args.validationFailed | | |!args.loggedIn){ jQuery('#dialog').effect(“shake”,{times:

我正试图用RequestContext发送一个Ajax回调,但无法正常工作

我尝试了,但是javascript函数中的“args.loggedIn”始终未定义,而“args”是一个对象

这是我的密码:

dialogLogin.xhtml:


点击
函数handleLoginRequest(xhr,status,args){
如果(args.validationFailed | | |!args.loggedIn){
jQuery('#dialog').effect(“shake”,{times:3},100);
}否则{
dlg.hide();
jQuery(“#loginLink”).fadeOut();
}  
}  
LogBean.java:

@ManagedBean
公共类LogBean{
私有字符串用户名;
私有字符串密码;
//接球手和接球手
公共无效登录(ActionEvent ActionEvent){
RequestContext=RequestContext.getCurrentInstance();
布尔loggedIn=false;
如果(username!=null&&username.equals(“admin”)&&password!=null&&password.equals(“admin”){
loggedIn=true;
}否则{
loggedIn=false;
}  
System.out.println(“loggedIn:+loggedIn”);
addCallbackParam(“loggedIn”,loggedIn);
}
}  
调用javascript函数“handleLoginRequest”,但“args.loggedIn”始终未定义。我不明白为什么

发送的响应(我从Firebug获得)是:



非常感谢您的帮助

如果验证失败,您将从应用程序获得以下响应:

<extension ln="primefaces" type="args">{"validationFailed":true}</extension>

此响应具有
loggedIn
值,因此调用
args.loggedIn
会导致
false
。因为调用
args的JSON响应中没有
validationFailed
。validationFailed
会导致未定义。

如果验证失败,您将从应用程序获得以下响应:

<extension ln="primefaces" type="args">{"validationFailed":true}</extension>

此响应具有
loggedIn
值,因此调用
args.loggedIn
会导致
false
。因为调用参数的JSON响应中没有
validationFailed
。validationFailed导致未定义。

托管bean的作用域是什么?我尝试了SessionScoped、ViewScoped、RequestScoped。。。结果在所有情况下都是一样的。我试着运行你的示例,结果很好。您如何检查
args
是否未定义?如果(args.validationFailed | | | | |!args.loggedIn),您是否尝试过在
之前执行
console.log(args)
?我尝试过在控制台中编写“args”和“args.loggedIn”:args=[object object]args.loggedIn=undefined这意味着
args
并不像您在文章中所说的那样未定义。它是一个物体。问题解决了?托管bean的作用域是什么?我尝试了SessionScoped、ViewScoped、RequestScoped。。。结果在所有情况下都是一样的。我试着运行你的示例,结果很好。您如何检查
args
是否未定义?如果(args.validationFailed | | | | |!args.loggedIn)
,您是否尝试过在
之前执行
console.log(args)
?我尝试过在控制台中编写“args”和“args.loggedIn”:args=[object object]args.loggedIn=undefined这意味着
args
并不像您在文章中所说的那样未定义。它是一个物体。问题解决了?好的,所以我们应该在响应中始终使用“validationFailed”或“loggedIn”。但就我而言,两者都是未定义的!(我在JS函数中的“if”前面加了一个“console.log”)。这对你有用吗?您是否得到了预期的JSON响应(如我在回答中所述)?你在用哪个浏览器?这个演示对我来说仍然不起作用。我用Firebug的回复更新了我的第一篇帖子(我可以在Firebug javascript控制台中看到它,可能是我做错了吗?),我尝试了Firefox和Chromium,两者的结果都是一样的。你的代码看起来不错,复制粘贴对我来说很有效。PrimeFaces showcase上的原始演示适合您吗?在PrimeFaces showcase上,它可以工作,但如果我只是在我的环境中复制/粘贴所有代码,它仍然不能工作。。。如果我在showcase上查看FireBug,我可以看到带有Json的“extension”标记,如您所说。好的,所以我们应该在响应中始终使用“validationFailed”或“loggedIn”。但就我而言,两者都是未定义的!(我在JS函数中的“if”前面加了一个“console.log”)。这对你有用吗?您是否得到了预期的JSON响应(如我在回答中所述)?你在用哪个浏览器?这个演示对我来说仍然不起作用。我用Firebug的回复更新了我的第一篇帖子(我可以在Firebug javascript控制台中看到它,可能是我做错了吗?),我尝试了Firefox和Chromium,两者的结果都是一样的。你的代码看起来不错,复制粘贴对我来说很有效。PrimeFaces showcase上的原始演示适合您吗?在PrimeFaces showcase上,它可以工作,但如果我只是在我的环境中复制/粘贴所有代码,它仍然不能工作。。。如果我在showcase上查看FireBug,我可以看到带有Json的“扩展”标记,如您所说。