あなたはこれを持っています:
public void openDialog(String someView) {
RequestContext.getCurrentInstance().openDialog(someView);
}
したがって、これを行うと:
<h:form id="form">
<p:commandButton id="button" value="Click" actionListener="#{bean.openDialog('someView')}" />
</h:form>
Ajax 応答でこれを受け取ります。
PrimeFaces.openDialog({
url:'/some/address/view.xhtml',
pfdlgcid:'cf8e7955-a6cf-4dd8-9a07-55cd29696a64',
sourceComponentId:'form:button',
sourceWidget:PF('widget_form_button'),
options:{}});
したがって、これを試すことができます:
<h:form id="form">
<p:commandButton id="button" value="Click" onclick="PrimeFaces.openDialog({
url:'/some/address/view.xhtml',
pfdlgcid:'cf8e7955-a6cf-4dd8-9a07-55cd29696a64',
sourceComponentId:'form:button',
sourceWidget:PF('widget_form_button'),
options:{}});" />
</h:form>
戻り値を使用することもできます:
<h:form id="form">
<p:growl id="growl" showDetail="true" />
<p:commandButton id="button" value="Click" onclick="PrimeFaces.openDialog({
url:'/some/address/view.xhtml',
pfdlgcid:'cf8e7955-a6cf-4dd8-9a07-55cd29696a64',
sourceComponentId:'form:button',
sourceWidget:PF('widget_form_button'),
options:{}});">
<p:ajax event="dialogReturn" listener="#{bean.returnedValue}" update="growl" />
</p:commandButton>
</h:form>
AJAX は、結果を宛先 URL に変換するだけです。宛先 URL がすでにある場合は、それを行う必要はありません。私の基本的なテストでは、結果ではなく「url」フィールドに宛先アドレスを渡す必要があることを除いて、これはオリジナルとまったく同じようにうまく機能します。
お役に立てれば。