JSF + Richface - Comportamento estranho

Olá pessoal …

Estou iniciando o uso de richfaces com JSF Facelets rodando no Jboss 5 … E tenho uma aplicação bem simples, na qual tenho um formulário com alguns campos. Submetido esse formulário uma outra área da mesma Página sobre um reRender.

O que acontece é que na execução da aplicação o Jboss me dá um WARNING:

Sem problema… Identifiquei o que preciso acrescentar no arquivo web.xml, mas quando acrescento essas propriedades. O reRender não funciona mais, tenho que clicar duas vezes sobre o botão ou link para exibir as informações.

Alguém já passou por isso que poderia me ajudar ?

index.xhtml

[code]<?xml version='1.0' encoding='UTF-8' ?>

Pesquisa
#{item.titulo}
[/code]

qual a versão do JSF?
se for a 2.0, pode deixar o RichFaces para mais pra frente, ainda não está pronto para o JSF 2.0… neste caso use o PrimeFaces 2.x (mais leve, mais fácil de programar)

Olá andii.brunetta,

To usando a versão JSF 1.2 … Mas vou dar uma olhada na sua sugestão PrimeFaces … Já perdi um bocado de tempo por causa desse problema.

muito obrigado…

Cara duas sugestões :

Ao invés disso

                             <a4j:commandLink action="#{indexBean.paginador.acessaPagina}" value=" #{numPage} ">  
                                 <a4j:actionparam value="#{numPage}" assignTo="#{indexBean.paginador.pageAtual}" />  
                                 <a4j:support event="onclick" reRender="painelConteudo" />  
                             </a4j:commandLink>  

Você pode usar isso : reRender=“painelConteudo” direto no commandLink

                             <a4j:commandLink action="#{indexBean.paginador.acessaPagina}" value=" #{numPage} "   reRender="painelConteudo"  >  
                                 <a4j:actionparam value="#{numPage}" assignTo="#{indexBean.paginador.pageAtual}" />  
                             </a4j:commandLink>  

Outra coisa que geralmente dá problema no JSF 1.* é a questão de misturar tags JSTL com JSF elas não tem um sincronismo legal, até pela questão de serem de ciclo de vidas diferentes, etc e tals:

  • Ao inves do for each use o a4j:repeat
  • Ao inves de c:if use a tag rendered

Olhando assim por cima acredito que o problema não está no RichFaces em si, mas sim na forma como a página está estruturada, e como você esta utilizando o jsf.

Dá uma olhada nos exemplos do richfaces de repente pode te ajudar a entender melhor funcionamento + codigo:

http://livedemo.exadel.com/richfaces-demo/richfaces/dataTableScroller.jsf?c=dataTableScroller&tab=usage

Apresentação legal do Rafael Ponte que tem umas dicas de JSF também:

http://www.slideshare.net/rponte/os-10-maus-hbitos-dos-desenvolvedores-jsf-presentation

Valeu Eduardo …

Era esse o problema muito obrigado pelas orientações e dicas …

Problema resolvido.
Valeu…

Boa tarde!

Estou com um problema parecido.

Tenho uma pagina de login:


<h:form id="form">
				<rich:panel id="painelLogin" rendered="#{!loginBean.esqueceuSenha}">
					<fieldset class="fieldsetLogin">
						<legend>Login</legend> 
						<h:outputLabel for="login" value="Login:" /> 
						<h:inputText id="login" value="" /> 
						<br />
						<h:outputLabel for="senha" value="Senha:" /> 
						<h:inputSecret id="senha" value="" /> 
						<br />
						<div class="botoes">
							<h:commandButton id="bntEntrar" value="Entrar" /> 
							<h:commandButton id="bntLembrar" value="Lembrar" actionListener="#{loginBean.lembrarSenha}" />
						</div>
						<br />
					</fieldset>
				</rich:panel>
				<rich:panel id="painelLembrarSenha" rendered="#{loginBean.esqueceuSenha}">
					<fieldset class="fieldsetLogin">
						<legend>Lembrar senha</legend> 
						<h:outputLabel for="email" value="Informe seu email:" /> 
						<h:inputText id="email" value="" /> 
						<h:commandButton id="bntEnviar" value="Enviar" actionListener="#{loginBean.enviarLembrete}" /> 
						<br />
					</fieldset>
				</rich:panel>
			</h:form>

Por enquanto o que interessa são os botões de “Lembrar Senha” e “Enviar Lembrete”.

Meu Bean:


public class LoginBean
{
	private boolean	esqueceuSenha	= false;
	
	public boolean isEsqueceuSenha()
	{
		return esqueceuSenha;
	}
	
	public void lembrarSenha(ActionEvent event)
	{
		System.out.println("lembrarSenha");
		this.esqueceuSenha = true;
	}
	
	public void enviarLembrete(ActionEvent event)
	{
		System.out.println("enviarLembrete");
		this.esqueceuSenha = false;
	}
}

Quando clico no botão “Lembrar senha” o Bean é acessado normalmente, printa o syso e retorna para a pagina renderizando o campo e botão para enviar o lembrete, porém quando clico no botão “Enviar Lembrete” nada acontece, o botão não faz a chamada ao método enviarLembrete() no bean.

Já passaram por isso?

Passando por aqui … para agradecer a andii.bruneta … pela dica Primefaces… show de bola …

Mas to tendo um dificuldade com o primefaces … vou abrir um tópico … para essa nova …