gpt4 book ai didi

jsf-2 - 如何从支持 bean 显示确认对话框(Primefaces)

转载 作者:行者123 更新时间:2023-12-03 09:32:17 24 4
gpt4 key购买 nike

我有一个导入函数,它将解析包含文档版本信息的 XML 文件并将其保存在数据库中。如果用户尝试上传已经存在的版本,我需要显示确认对话框,如“版本已经存在你想覆盖..?”好的,取消。

我正在使用 Mozarra 2.0.3,Prime faces 2.2 RC2,Glass Fish 3,我正在尝试这种方式。

<h:form id="conDialog">
<p:commandButton value="getConfirmMsg" update="conDialog" action="#{buttonBean.getConfirmMsg()}"
oncomplete="confirmation.show()"/>
<p:growl id="messages1" globalOnly="true"/>
<p:confirmDialog message="Version already exists. Do you want to override it?"
rendered="#{buttonBean.showConfirm}"
header="Version already exist" severity="alert" widgetVar="confirmation">
<p:commandButton value="OK" update="messages1" oncomplete="confirmation.hide()"
action="#{buttonBean.overrideVersion}" />
<p:commandButton value="Cancel" onclick="confirmation.hide()" type="button" />
</p:confirmDialog>
</h:form>

后台 bean
@ManagedBean
@RequestScoped
public class ButtonBean {

boolean showConfirm = false;

public boolean isShowConfirm() {
return showConfirm;
}

public void setShowConfirm(boolean showConfirm) {
this.showConfirm = showConfirm;
}

public void overrideVersion() {
System.out.println("Version alrady exists...Overriding...");
FacesMessage msg = new FacesMessage("Action is successful");
FacesContext.getCurrentInstance().addMessage(null, msg);
}

public void getConfirmMsg() {
System.out.println("Inside getConfirmMsg()....");
showConfirm = true;
System.out.println("showConfirm: " + showConfirm);
}
}

当我点击“确定”时, Action 不会触发。上面的代码有什么错误吗?

最佳答案

在服务器上处理期间无法从客户端获得确认。

您有两个选择:

  • 在调用您的操作方法之前获得覆盖权限,例如带有复选框“如果存在则覆盖文件?”或
  • 您必须停止处理,设置标志并返回 null 才能在浏览器中重新加载当前页面。
    然后你可以显示p:dialog取决于标志状态。
  • 关于jsf-2 - 如何从支持 bean 显示确认对话框(Primefaces),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832222/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com