Вопрос по primefaces – Правильная конструкция для диалога Primefaces

7

Я запутался в сжатии диалога Primefaces 3.

Я вижу вопрос в SO, который имеет этот шаблон. Форма находится за пределами диалога.

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

Но другой вопрос имеет это.

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

Витрина Primefaceshttp://www.primefaces.org/showcase/ui/dialogLogin.jsf одобряет последний.

Я запутался, если есть какая-либо веская причина для использования одного над другим?

Спасибо

Ваш Ответ

1   ответ
15

<h:form> внутри<p:dialog как это

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

потому что содержимое вашего диалога может быть "взято" от вашей страницы и добавили некоторые где-то в вашем дереве DOM, так что если вы поместите диалог внутри какой-либо формы, это может привести к тому, что ваш диалог будетrelocated somewhere else и чтобы все ваши кнопки / ссылки и другие элементы перестали работать (это очень распространенный вопрос здесь, в SO)

Таким образом, чтобы быть безопасными, разместите<h:form> тег внутри вашего<p:dialog тег

Другой пример, когда вы используетеappendToBody="true" в диалоге:

if dialog is inside an h:form component and appendToBody is enabled, on the browser dialog would be outside of form and may cause unexpected results. In this case, nest a form inside a dialog.

Похожие вопросы