Preciso recuperar o valor de um <h:inputText> no onChanged de um rich:calendar para fazer um cálculo de dias…
to usando um <a4j:support event=“onChanged”> no calendar e na hora que seleciono uma data ele chama minha action certinho e recupera o valor do calendário,
porém o valor que digitei no input text não pega, vem sempre null… já tentei dando reRender no input e no formulário inteiro e não funciona…
<a4j:outputPanel id="opTudo">
<a4j:outputPanel>
<!-- Campo Quantidade de dias ( nao persistente, só serve pra calcular automaticamente a data de previsao de término ) -->
<h:outputText class="output-01" value="Dia(s):" />  
<h:inputText class="input-02"
maxlength="2" size="4" id="numeroDias"
value="#{eventoAfastamentosTemporariosControle.eventoAfastamentosTemporarios.numeroDias}">
</h:inputText>
<h:outputText class="output-01" value="Data Início:"
title="Informe a Data de Início do Afastamento">
</h:outputText>
<rich:calendar enableManualInput="false" required="true"
requiredMessage="Data Início é obrigatório"
oninputkeypress="formatar_mascara(this,'##/##/####');"
maxlength="10" inputSize="12" inputClass="calendar"
datePattern="dd/MM/yyyy" id="dtInicio"
value="#{eventoAfastamentosTemporariosControle.eventoAfastamentosTemporarios.dtInicio}">
<a4j:support event="onChanged" ajaxSingle="true" reRender="numeroDias"
action="#{eventoAfastamentosTemporariosControle.calcularDtPrevisao()}" />
</rich:calendar>
</a4j:outputPanel>
</a4j:outputPanel>
meu Controle
/**
* Método calcula a data de previsao de termino do afastamento baseando-se
* na data inicial e quantidade de dias informados no form
*
* @throws ParseException
*/
public void calcularDtPrevisao() {
GregorianCalendar gc = new GregorianCalendar();
gc.setTime( eventoAfastamentosTemporarios.getDtInicio() );//Esse ele consegue pegar pois o a4j:support está dentro do calendar
gc.add( Calendar.DAY_OF_MONTH, eventoAfastamentosTemporarios.getNumeroDias() );//Esse eventoAfastamentosTemporarios.getNumeroDias() vem null
eventoAfastamentosTemporarios.setDtPrevisao( gc.getTime() );
}
meu Bean
//Anotei com @Transient pois esse dado não é persistido no banco
@Transient
private Integer numeroDias;
public Integer getNumeroDias() {
return this.numeroDias;
}
public void setNumeroDias( Integer numeroDias ) {
this.numeroDias = numeroDias;
}
Frisando que já tentei dando reRender no outPutPanel inteiro e não deu certo…
outra tentativa que fiz foi colocando o <a4j:support event=“onBlur”> no campo numeroDias, daí ele consegue pegar o valor, mas deixa de recuperar o do calendar, ai fica na mesma…