Как правило, вы можете что-то вроде этого:
<p:commandButton action="#{someBean.closeDialog('yes')}" process="@form" update="@form"
icon="#{icons.yes}" value="#{bundle.yes}" />
<p:commandButton action="#{someBean.closeDialog('no')}" process="@form" update="@form"
icon="#{icons.no}" value="#{bundle.no}" />
public void closeDialog(String choice)
{
RequestContext requestContext = RequestContext.getCurrentInstance();
Object someData = executeChoice(choice);
requestContext.closeDialog(someData);
}
В противном случае, если вам действительно нужно, чтобы закрыть диалоговое окно на onclick
(звучит немного странно ...), вы можете использовать:
<p:remoteCommand name="closeDialog" action="#{someBean.closeDialog}" process="@this" />
<p:commandButton type="button" onclick="closeDialog()" icon="#{icons.close}"
value="#{bundle.close}" />
public void closeDialog()
{
RequestContext requestContext = RequestContext.getCurrentInstance();
requestContext.closeDialog(null);
}
Наконец, если вам нужен pure javascript решение, вы можете:
<p:commandButton type="button"
onclick="PrimeFaces.closeDialog({pfdlgcid:'#{param.pfdlgcid}'})"
icon="#{icons.close}" value="#{bundle.close}" />