Jsf 按PrimeFaces'后防止页面刷新;按钮
我有一个网页,里面有Jsf 按PrimeFaces'后防止页面刷新;按钮,jsf,button,primefaces,Jsf,Button,Primefaces,我有一个网页,里面有p:tabView和一些p:tab。在其中一个选项卡(不是默认选项卡)中有一个p:commandLink,单击该选项卡可更新并显示一个p:dialog,其中包含一个p:button 我的问题是,单击对话框中的按钮后,页面将刷新并再次显示默认选项卡。相反,我希望按钮在不刷新页面的情况下关闭对话框。换句话说,我希望该按钮在服务器端触发一个操作,而在客户端则像对话框右上角的xclose链接一样运行。我认为您可以使用PrimeFaces v3.0实现它。RC2: @ManagedB
p:tabView
和一些p:tab
。在其中一个选项卡(不是默认选项卡)中有一个p:commandLink
,单击该选项卡可更新并显示一个p:dialog
,其中包含一个p:button
我的问题是,单击对话框中的按钮后,页面将刷新并再次显示默认选项卡。相反,我希望按钮在不刷新页面的情况下关闭对话框。换句话说,我希望该按钮在服务器端触发一个操作,而在客户端则像对话框右上角的
x
close链接一样运行。我认为您可以使用PrimeFaces v3.0实现它。RC2:
@ManagedBean
@请求范围
公共类MrBean{
公众假期结束(){
RequestContext=RequestContext.getCurrentInstance();
执行(“dialog.hide();”;
//在primefaces>=3.x上,使用context.execute(“PF('dialog').hide();”;
}
}
我认为使用PrimeFaces v3.0.RC2可以实现这一点:
@ManagedBean
@请求范围
公共类MrBean{
公众假期结束(){
RequestContext=RequestContext.getCurrentInstance();
执行(“dialog.hide();”;
//在primefaces>=3.x上,使用context.execute(“PF('dialog').hide();”;
}
}
这是可行的,但这并不是最直接的解决方案,我从您的答案中了解到,使用p:commandButton而不是p:button。这使您可以使用actionListener=“mrBean.doSomething”type=“Button”oncomplete=“dialog.hide()”这就足够了,而无需干扰RequestContext:P haha sry。。我读得太快了,不知道你想在服务器端做这件事。这是可行的,但从你的回答中我知道,这不是最直接的解决方案,用p:commandButton代替p:button。这使您可以使用actionListener=“mrBean.doSomething”type=“Button”oncomplete=“dialog.hide()”这就足够了,而无需干扰RequestContext:P haha sry。。我读得太快了,不知道你想在服务器端做这件事
<p:dialog widgetVar="dialog">
<p:commandButton actionListener="#{mrBean.close}" value="Close" />
</p:dialog>
@ManagedBean
@RequestScoped
public class MrBean {
public void close() {
RequestContext context = RequestContext.getCurrentInstance();
context.execute("dialog.hide();");
//On primefaces >= 3.x use context.execute("PF('dialog').hide();");
}
}