对于我的网络应用程序,我想显示一个数据表,其中包含编辑,删除和添加新数据集的选项。 显示数据和使用在线编辑证明是没有问题的。 删除后需要进行某种确认,所以我在按钮上添加了一个确认对话框。 但是,当我为添加机制添加第二个对话框时,确认对话框突然不再触发删除操作。 所以我试图尽可能地减少代码并发现,根据对话框的顺序,第二个对话框永远不会触发相关的操作。
这是简化的模板:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<ui:composition template="/templates/abstractLayout.xhtml">
<ui:define name="contentBase">
<p:dialog header="Does Work" widgetVar="inputDialog" modal="true">
<h:form id="addRolleForm">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<p:commandButton id="addRolle" value="Do it" action="#{testView.works}" oncomplete="PF('inputDialog').hide();"/>
<p:commandButton id="cancel" value="cancel" onclick="PF('inputDialog').hide();"/>
</h:form>
</p:dialog>
<h:form id="test">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<p:commandLink id="deleteLink" styleClass="editCell ui-icon ui-icon-trash" action="#{testView.doesntWork}" title="Delete" process="@all">
<p:confirm header="confirm" message="Yes doesnt activate action" icon="ui-icon-alert"/>
</p:commandLink>
</h:form>
<p:commandButton id="openInputDlg" title="Work work work" icon="ui-icon-plus" onclick="PF('inputDialog').show();" type="button"/>
<p:confirmDialog global="true">
<p:commandButton value="Yes" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
<p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
</p:confirmDialog>
</ui:define>
</ui:composition>
</html>
现在背后的相关视图:
/*package and imports*/
@ManagedBean
@RequestScoped
public class TestView {
GenericLogger log = new GenericLogger(this);
public void works() {
log.logEnter("Works");
log.logReturn("Work returned");
}
public void doesntWork() {
log.logEnter("DOES Work"); //never enters this method
log.logReturn("DID return");
}
}
如果我删除另一个对话框,每个对话框本身都能正常运行。 我已经尝试将confirmdialog的命令按钮设置为自己的形式,但这并没有改变任何内容。
搜索论坛或网络向我展示了大量其他情况,其中没有一个适用于我的情况。感谢您对此问题的任何帮助