Sulla mia pagina ho un pulsante che apre un elenco di elementi in un popup. Quando seleziono 1 elemento nell'elenco, voglio passare l'id dell'elemento al backingbean della mia prima pagina. È possibile? Ha provato a farlo con a4j:jsFunction
e a4j:param
ma non funziona.Come passare un valore di parametro a a4j: jsFunction
Questo è il mio codice:
Pagina 1:
<a4j:jsFunction name="renderGuarantor" render="guarantor" actionListener="#{prospectDetail.setNewGuarantor}">
<a4j:param name="param1" assignTo="#{prospectDetail.newGuarantorId}" />
</a4j:jsFunction>
popuppage:
<h:outputLink value="" onclick="window.opener.renderGuarantor(#{applicant.deposit_id});window.close();">
<h:graphicImage style="padding:0 1px; border:0" value="${path.staticRootUrl}images/confirm.gif" alt="${msg.applicantslist_select}" title="${msg.applicantslist_select}"/>
</h:outputLink>
E questo è il codice di supporto di fagioli per la prima pagina
private Integer newGuarantorId;
public void setNewGuarantor() {
guarantor = newGuarantorId;
}
public Integer getNewGuarantorId() {
return newGuarantorId;
}
public void setNewGuarantorId(Integer newGuarantorId) {
this.newGuarantorId = newGuarantorId;
}
Quando si seleziona nel popup, viene chiamato il metodo nel mio backingbean, ma newGuarantorId
è nullo e setNewGuarantorId
non viene mai chiamato.
C'è una soluzione al mio problema?
Sei sicuro che '# {candidato.deposit_id}' non è nullo nella nuova finestra? – Nikhil
sì è compilato con l'id corretto. – roel
Hmm .. questo è strano, niente sembra sbagliato ... Non è una risposta alla tua domanda, ma prova questa soluzione alternativa - invece di assegnare il valore a 'garanteId', tieni il parametro come' ' e nel metodo 'actionListener' recupera questo' param1' dalla richiesta come 'String param1 = FacesContext.getCurrentInstance(). getExternalContext(). getRequestParameterMap(). get (" param1 ");'. E quindi convertire questo parametro in 'int' e utilizzarlo ulteriormente. Questo dovrebbe funzionare –
Nikhil