En mi página tengo un botón que abre una lista de elementos en una ventana emergente. Cuando selecciono 1 elemento en la lista, quiero pasar la identificación del artículo al reverso de mi primera página. ¿Es posible? Intentó hacerlo con a4j:jsFunction
y a4j:param
pero no funciona.Cómo pasar un valor de parámetro a a4j: jsFunction
Este es mi código:
página 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>
Y este es el código del bean de respaldo para la primera página
private Integer newGuarantorId;
public void setNewGuarantor() {
guarantor = newGuarantorId;
}
public Integer getNewGuarantorId() {
return newGuarantorId;
}
public void setNewGuarantorId(Integer newGuarantorId) {
this.newGuarantorId = newGuarantorId;
}
Al seleccionar en la ventana emergente se llama al método en mi bean de respaldo, pero newGuarantorId
es nulo y setNewGuarantorId
nunca se llama.
¿Existe alguna solución a mi problema?
¿Estás seguro de que '# {candidate.deposit_id}' no es nulo en la nueva ventana? – Nikhil
sí, se completa con la identificación correcta. – roel
Hmm ... eso es extraño, nada parece estar mal ... No es una respuesta a su pregunta, pero pruebe esta solución alternativa: en lugar de asignar el valor a 'guarantorId', mantenga el parámetro como' ' y en el método 'actionListener' recupere este' param1' de la solicitud como 'String param1 = FacesContext.getCurrentInstance(). getExternalContext(). getRequestParameterMap(). get (" param1 ");'. Y luego convierta este parámetro a 'int' y utilícelo más. Eso debería funcionar. –
Nikhil