2014-11-21 4 views
0
<p:dialog header="#{bundle['ref.details']}" id="detailsDial" 
        widgetVar="detailsDialog" style="max-width:800px"> 
        <p:button value="#{bundle['close']}" 
         onclick="PF('detailsDialog').hide()" /> 
       </p:dialog> 

В диалоговом окне нет другой формы, внутри диалогового окна нет формы. Вот что-то очень малое, что я пропустил, но что. Я не знаю, какую другую информацию дать, потому что на самом деле не понимаю, как кнопка p: перезагружает страницу только на стороне клиента? В JavaScript нет javascript. Также нет сообщений об ошибках в консоли firebug. Снаружи я использую шаблон, как это:Зачем закрывать p: диалог перезагружает страницу

<!DOCTYPE html> 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 
<h:body> 
<ui:composition template="/maintemplate.xhtml"> 
<ui:define name="content"> 
<p:dialog .... 

ответ

1

Переход от p:button к p:commandButton Кнопка команда использует частичный запрос по умолчанию

  <p:dialog header="#{bundle['ref.details']}" id="detailsDial" 
       widgetVar="detailsDialog" style="max-width:800px"> 
        <p:commandButton value="#{bundle['close']}" onclick="PF('detailsDialog').hide();" type="button" /> 
      </p:dialog> 

Чтобы понять разницу, что достаточно, чтобы увидеть HTML быть оказанные в том или ином случае, поэтому для

<p:button value="Close" onclick="PF('detailsDialog').hide()" /> 

тонированное HTML является

<button type="button" onclick="PF('detailsDialog').hide();window.open('/ui/button.jsf','_self')" > 
    <span class="ui-button-text ui-c">Close</span> 
</button> 

кнопка делает GET запросы, обратите внимание на window.open('/ui/button.jsf','_self')

для <p:commandButton value="Close" onclick="PF('detailsDialog').hide()" />

тонированное HTML является

<button onclick="PF('detailsDialog').hide();PrimeFaces.ab({s:'j_idt19'});return false;" type="submit"> 
    <span class="ui-button-text ui-c">CloseCommandButton</span> 
</button> 

Обратите внимание на PrimeFaces.ab({s:'j_idt19'});return false; так он посылает partialUpdate вместо о внесении прилагаемой формы

+0

Какая разница между кнопками p: и p: commandButton? –

+1

Я обновил ответ, чтобы лучше отразить разницу, см. Мое редактирование –

Смежные вопросы