mercoledì 13 novembre 2013

Primefaces p:dialog problemi nel submit ajax

Utilizzando primefaces 3.5 ho avuto il seguente problema.
Avevo un form principale che richiamava un p:dialog.
Il p:dialog si vedeva sempre con i campi in grigetto e non riuscivo quindi ad effettuare l'update.
Ho usato quindi la proprietà appendToBody="true" che effettivamente consentiva la visualizzazione corretta del form ma i valori dei campi non passavano in request (il bean aveva scope di tipo view).
A questo punto per risolvere il tutto ho messo tutto il p:dialog all'interno di un form separato e fuori dal form principale (occhio che definire form innestati provoca problemi in alcuni browser) e a questo punto tutto ho potuto rimettere il valore di default appendToBody e tutto ha funzionato correttmaente.
Incollo sotto l'xhtml del p:dialog:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"  
    xmlns:h="http://java.sun.com/jsf/html"  
    xmlns:f="http://java.sun.com/jsf/core"   
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://java.sun.com/jsf/facelets">  
 <h:form id="ghersi">
    <p:dialog id="parametrizzazioneGi" widgetVar="par020WidgetVar" appendToBody="false"
       closable="true" resizable="true" draggable="true" modal="true" 
                width="600" height="250" header = "#{msg['paramGi']}" dynamic="true">
              <table>
              <tr><td>#{msg['codInt']}</td>
              <td> 
              <p:inputText id="codiceInterno" value="#{par020.codiceInterno}" maxlength="5" size="10"></p:inputText>
              </td>
              </tr>
              <tr><td>#{msg['codOgg']}</td>
              <td> 
              <p:inputText id="codiceOggetto" value="#{par020.codiceOggetto}" maxlength="30" size="40"></p:inputText>
              </td>
              </tr>
               <tr><td>#{msg['dtUltElabor']}</td>
              <td> 
              <p:inputText id="dtUltElab" value="#{par020.dataUltimaElaborazione}" maxlength="9" size="18"></p:inputText>
              </td>
              </tr>
               <tr><td>#{msg['schedPar']}</td>
              <td> 
              <p:inputText id="schedaParam" value="#{par020.schedaParametro}" maxlength="80" size="45"></p:inputText>
              </td>
              </tr>
              <tr>
              <td colspan="2">
              <p:commandButton id="insertParam" value="Inserimento" icon="ui-icon-arrowreturnthick-1-w"  
          actionListener="#{par020.insert}"   
             style="margin-top:15px;margin-right:5px;color:white;background:#868686;"
             update=":mainForm:parametri :mainForm:messages " oncomplete="par020WidgetVar.hide()" /> 
              </td>
              </tr>
              </table>
              
  </p:dialog>
    </h:form>
    </ui:composition>


Nessun commento:

Posta un commento