2012-05-14 116 views
6

Me confunde el cálculo de un cuadro de diálogo Primefaces 3.Construcción adecuada para el cuadro de diálogo Primefaces

Veo la pregunta en SO que tiene este patrón. El formulario está fuera del diálogo.

<h:form> 
    <p:dialog id="dialog" modal="true" widgetVar="dlg"> 
    </p:dialog> 
</h:form> 

Pero otra pregunta tiene esto.

<p:dialog id="dialog" modal="true" widgetVar="dlg"> 
    <h:form>  
    </h:form> 
</p:dialog> 

Los Primefaces escaparate http://www.primefaces.org/showcase/ui/dialogLogin.jsf favorece esta última.

¿Me confundo si hay alguna razón válida para usar una sobre otra?

Gracias

Respuesta

14

Siempre se utiliza mejor lugar del <h:form> dentro <p:dialog como esto

<p:dialog id="dialog" modal="true" widgetVar="dlg"> 
    <h:form>  
    </h:form> 
</p:dialog> 

causa que el contenido de diálogo podría ser "tomado" fuera de su página y se añade a otro lugar en el árbol DOM, entonces si coloca el diálogo dentro de alguna forma, puede hacer que su diálogo sea reubicado en otro lugar y hacer que todos sus botones/enlaces y otros elementos dejen de funcionar (esta es una pregunta muy común aquí en SO)

Así que con el fin de ser disipa en el lugar lado seguro que <h:form> etiqueta dentro de su <p:dialog etiqueta

Otro ejemplo es cuando se utiliza appendToBody="true" en diálogo:

si de diálogo está dentro de un h: forman el componente y appendToBody está habilitado, en el navegador el diálogo estaría fuera del formulario y puede provocar resultados inesperados. En este caso, anide un formulario dentro de un cuadro de diálogo.

Cuestiones relacionadas