In un form avevo la seguente problematica.
Dopo aver settato un valore di un inplace editor (quindi un inplace associato ad un inputText) viene scatenata una chiamata Ajax che recupera dei dati dalla sessione , fa alcune elaborazioni e quindi rieffettua l'update di un pannello sul form.
Il problema segnalato era che modificando una textarea interna del pannello con l'in place ancora aperto (senza aver cliccato sulla casella di spunta) una volta sottomessa la chiamata Ajax il valore della textArea andava perduto.
Quindi avevo la necessità di portarmi dietro anche il valore della textArea nella chiamata Ajax, in modo che fosse recuperato lato server e non perso.
Con il tag p:ajax questo è molto semplice, basta settare l'attributo "process".
Dalla javadoc di primefaces la descrizione dell'attributo è la seguente:
Component(s) to process in partial request. Defaults to @this.
Quindi basta scrivere nell'atributo process l'id del componente da processare.
Esempio:
Nel metodo "updateVerificaComplessiva", recuperando dalla sessione il bean, si trova anche il valore della text area, invece prima invece il campo testo era vuoto.
Dopo aver settato un valore di un inplace editor (quindi un inplace associato ad un inputText) viene scatenata una chiamata Ajax che recupera dei dati dalla sessione , fa alcune elaborazioni e quindi rieffettua l'update di un pannello sul form.
Il problema segnalato era che modificando una textarea interna del pannello con l'in place ancora aperto (senza aver cliccato sulla casella di spunta) una volta sottomessa la chiamata Ajax il valore della textArea andava perduto.
Quindi avevo la necessità di portarmi dietro anche il valore della textArea nella chiamata Ajax, in modo che fosse recuperato lato server e non perso.
Con il tag p:ajax questo è molto semplice, basta settare l'attributo "process".
Dalla javadoc di primefaces la descrizione dell'attributo è la seguente:
Component(s) to process in partial request. Defaults to @this.
Quindi basta scrivere nell'atributo process l'id del componente da processare.
Esempio:
<p:inplace id="val_sog" editor="true"
rendered="#{verificaComplessiva.daModificare
and verificaComplessiva.stato!='K'}" >
<p:inputText value="#{verificaComplessiva.punteggio_soggettivo_ope}" immediate="true" />
<p:ajax event="save" listener="#{workflowTabManager.updateVerificaComplessiva}"
process="val_sog txtNote" update="verificaComplessivaPanel"/>
</p:inplace>
Nel metodo "updateVerificaComplessiva", recuperando dalla sessione il bean, si trova anche il valore della text area, invece prima invece il campo testo era vuoto.
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
HttpSession session = (HttpSession) request.getSession();
VerificaComplessiva vc = (VerificaComplessiva) session.getAttribute("verificaComplessiva");
Nessun commento:
Posta un commento