Pessoal,
tenho um formulário que monta uns campos inputText dinamicamente de acordo com o preenchimento de outro inputText. Consegui montar os campos direito, só que tô com dois problemas.
1- Preciso que sempre no “onblur” de cada inputText seja chamado um método do meu Bean pra fazer uma operação. Tentei colocar um <a4j:support> (no código abaixo), só que o método não tá sendo chamado.
2- Quando clico no botão pra submeter o formulário, os value dos inputs tão indo vazios. É uma lista, a lista tá indo sempre vazia.
O trecho do código do jsp dos inputs e da ação do primeiro problema:
<h:dataTable
value="#{movimentoretaguarda_receberCheques.cheques}"
var="chq" id="listaCheques">
<h:column>
<f:facet name="header">
<h:outputText value="Valor Cheque" />
</f:facet>
<h:inputText id="itValorChq" value="#{chq.valorCheque}"
maxlength="13"
size="15">
<a4j:support actionListener="#{movimentoretaguarda_receberCheques.somarValoresCheques}"
event="onblur" reRender="itTotalChq" />
</h:inputText>
</h:column>
</h:dataTable>
Código do Bean que monta os inputs:
private List<ChequeInterfaceTO> cheques ;
public void criarCamposCheque(ActionEvent event) {
if (receberChequesInterfaceTO != null) {
Integer qtdeChq = receberChequesInterfaceTO.getQtdeCheques();
for (int i = 0; i < qtdeChq.intValue(); i++) {
ChequeInterfaceTO chequeInterfaceTO = new ChequeInterfaceTO();
chequeInterfaceTO.setNrLinha(qtdeChq);
getCheques().add(chequeInterfaceTO);
}
}
}
Método que é executado no inicio do bean:
public void loadData() {
if(cheques==null)
cheques= new ArrayList<ChequeInterfaceTO>();
}
Método que deveria ser chamado no onblur do inputText:
public void somarValoresCheques(ActionEvent event){
List<ChequeInterfaceTO> chqs = getCheques();
System.out.println(chqs.size());
}