Na mojej stronie mam przycisk, który otwiera listę pozycji w wyskakującym okienku. Gdy wybiorę 1 pozycję na liście, chcę przekazać identyfikator elementu do brzegu mojej pierwszej strony. Czy to możliwe? Próbował to zrobić z a4j:jsFunction
i a4j:param
, ale to nie działa.Jak przekazać wartość parametru do a4j: jsFunction
To jest mój kod:
strona 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>
I to jest kod backing bean na pierwszej stronie
private Integer newGuarantorId;
public void setNewGuarantor() {
guarantor = newGuarantorId;
}
public Integer getNewGuarantorId() {
return newGuarantorId;
}
public void setNewGuarantorId(Integer newGuarantorId) {
this.newGuarantorId = newGuarantorId;
}
Po wybraniu w okienku wyskakującym wywoływana jest metoda w moim bufecie, ale newGuarantorId
ma wartość null, a setNewGuarantorId
nigdy nie jest wywoływana.
Czy istnieje rozwiązanie mojego problemu?
Czy jesteś pewien, że '# {request.deposit_id}' nie ma wartości NULL w nowym oknie? – Nikhil
Tak, jest wypełniony prawidłowym identyfikatorem. – roel
Hmm .. to dziwne, nic nie wygląda źle .. Nie ma odpowiedzi na twoje pytanie, ale spróbuj tego obejścia - zamiast przypisywania wartości do 'gwarantId', utrzymuj parametr jako iw metodzie 'actionListener' pobierz ten' param1' z żądania jako 'String param1 = FacesContext.getCurrentInstance(). getExternalContext(). getRequestParameterMap(). get (" param1 ");'. A następnie przekonwertuj ten parametr na "int" i wykorzystaj go dalej. To powinno działać. –
Nikhil