JSF @ViewScope, PrimeFaces <p:dialog-und <ui:include

Habe ich: - Taste auf die Hauptseite und dialog.

Einen haben möchte, der ViewScope Lebenszyklus von managed bean (NewDialog.java), was führen Sie den dialog.
In anderen Worten: erstellen Sie die NewDialog bean, während drücken der Taste, und zerstören, während das schließen-dialog.

Aber NewDialog bean erzeugt hat, beim laden der Hauptseite.
Wie zu zwingen, bean erstellt, nur, wenn Sie eine Taste drücken?

<ui:composition
   <h:form id="mainForm">
      <p:commandButton value="New Dialog"
                  onclick="newDialogVar.show();"/>  
   </h:form>

        <ui:include src="#{viewScopedBean.page}.xhtml" />
    </ui:define>
</ui:composition>

Enthalten Seite:

    <ui:composition ..
        <f:view >
       <h:form id="formId"
         <p:dialog appendToBody="false"
                  dynamic="true"
                  modal="true"
                  widgetVar="newDialogVar">

              <p:commandButton value="Ok"
                         actionListener="#{newDialog.ok}"/>
      </h:form>
    </p:dialog>
    </f:view>
</ui:composition>

Bean:

@ManagedBean
@ViewScoped
public class NewDialog implements Serializable{

  @PostConstruct
    protected void postConstruct() {
        LOG.info("----------------- PostConstruct -------------------");
    }
}

Benutze ich: PrimeFaces 3.5 mit Mojarra 2.1.22

Vielen Dank im Voraus!

P. S. : laut Forschung, die ich hinzufügen:

<context-param>
    <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
    <param-value>false</param-value>
</context-param>

zu web.xml.

InformationsquelleAutor Olga | 2013-06-06
Schreibe einen Kommentar