Rich:calendar (RichFaces) não modifica valor no ManagedBean

3 respostas
Luiz_Gustavo

Galera,

ao usar o rich:calendar em uma página (richfaces 3.3.1, facelets), fazendo testes no Firefox, no Ubuntu, percebi que ao escolher uma data qualquer, o valor do componente no bean não é modificado. Até mesmo se uso um listener, este não é notificado da mudança de valor.
Faz muito tempo que uso o Richfaces e nunca tinha visto um comportamento desses com o calendar.
Não sei dizer (ainda não testei essa versão no windows) se é um problema de compatibilidade com o navegador no Ubuntu ou um problema do componente mesmo, nessa nova versão.

Alguém teve este problema?

3 Respostas

Luiz_Gustavo

Estou de cara aqui!
Sempre usei o rich:calendar, que é algo trivial, e nunca tive problemas.
[editado] Fiz os testes no windows e tudo funcionou, só usando o Firefox no Ubutu é que percebi este problema.[/editado]
A declaração dos componentes na página é algo simples:

<tr>
	<td width="15%">								
		<h:outputLabel for="dataInicial" id="lblDataInicial" 
		value="#{msg.lblDataInicial}" styleClass="labelClass"/>
	</td>
	<td>									
		<rich:calendar id="dataInicial" value="#{eventoBean.dataInicial}"		                        
		datePattern="dd/MM/yyyy"/>					                    	                         
	</td>			                
	<td width="15%">
		<h:outputLabel for="dataFinal" id="lblDataFinal" 
		value="#{msg.lblDataFinal}" styleClass="labelClass"/>
	</td>
	<td>								
		<rich:calendar id="dataFinal" value="#{eventoBean.dataFinal}"			                        
		datePattern="dd/MM/yyyy"/>					                
	</td>
</tr>

E as propriedades no managed bean são do tipo Date:

private Date dataInicial = new Date();
	private Date dataFinal = new Date();

O botão de comando que submete o formulário é este:

<a4j:commandButton value="#{msg.btnPesquisar}" id="btnPesquisar" 
	action="#{eventoBean.pesquisar}" styleClass="botao" immediate="true"/>

e no managed bean o método chamado é o seguinte:

public String pesquisar(){
    	
    	try{
    		
    		System.out.println("this.conta: " + this.conta);
    		System.out.println("this.dataInicial: " + this.dataInicial);
    		System.out.println("this.dataFinal: " + this.dataFinal);
    		
    		setLancamentos(
    			pesquisarLancamentos(
					FinancareBD.getInstance()
    				.obterContaContabil(Long.valueOf(this.conta)), 
    				this.dataInicial, this.dataFinal));
    	}
    	catch(Exception e){
    		e.printStackTrace();
    	}
    	return null;
}

O método estásendo invocado, portanto não é um problema de estar submetendo a página para um managed bean errado.
Porém, o System.out dentro do método é o seguinte, independente da data que o usuário selecione:

this.conta: 1
this.dataInicial: Sat Jul 25 16:08:54 BRT 2009
this.dataFinal: Sat Jul 25 16:08:54 BRT 2009

As propriedades não são modificadas no managed bean de jeito nenhum! :roll:

Alguém já teve esse problema com a versão 3.3.1 do Richfaces?

Vou fazer testes com a versão anterior, só por desencargo.

[]'s

B

Cara estou com o mesmo problema que o seu descrito acima…voce conseguiu descobrir a causa do problema ???
abraço,
flw

Luiz_Gustavo

Olá!

tente colocar um immediate=“true” no calendar.

[]'s

Criado 25 de julho de 2009
Ultima resposta 7 de abr. de 2010
Respostas 3
Participantes 2