Render campo jsf

9 respostas
J

pessoal to com uma duvida de como preencher dois input ao selecionar um combo. To mexendo com jsf (richfaces).

meu codigo ta assim: metodo no meu bean
public String getPlanoComprado()
	{
		switch(tipoPlanoContratado)
		{
			case 1:
			{
				credito.setQuantidadeAUsar(2000);
				credito.setValorComprado(3);
				break;
			}
			case 2:
			{
				credito.setQuantidadeAUsar(1000);
				credito.setValorComprado(4);
				break;
			}
			case 3:
			{
				credito.setQuantidadeAUsar(500);
				credito.setValorComprado(4.5);
				break;
			}
			case 4:
			{
				credito.setQuantidadeAUsar(1);
				credito.setValorComprado(5);
				break;
			}
		}
		return "planoContratado";
	}
minha tela
<h:selectOneMenu id="plano" style="width:120px" value="#{creditoBean.tipoPlanoContratado}">
											<f:selectItem itemLabel="Plano 1" itemValue="1" />
											<f:selectItem itemLabel="Plano 2" itemValue="2"/>
											<f:selectItem itemLabel="Plano 3" itemValue="3"/>
											<f:selectItem itemLabel="Plano 4" itemValue="4"/>
											<a4j:support event="onchange" ajaxSingle="true" reRender="qtde" actionListener="#{creditoBean.planoComprado}"/>
										</h:selectOneMenu>

//e tem que popular esses dois campos

<h:inputText value="#{creditoBean.credito.valorComprado}"/>
<h:inputText value="#{creditoBean.credito.quantidadeAUsar}" ></h:inputText>

dai qdo executo, ela dispara para uma tela em branco com erro de javascript

o erro eh esse
Detalhes dos erros da página da Web

Agente de Usuário: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.1)
Carimbo de data/hora: Mon, 10 Aug 2009 23:36:01 UTC


Mensagem: Permissão negada
Linha: 29
Caractere: 222
Código: 0
URI: http://localhost:8080/Cliente/a4j_3_1_0-SNAPSHOTorg.ajax4jsf.javascript.AjaxScript.jsf

alguem sabe porque ocorre isso?

9 Respostas

J

eu tava tentando debugar e vi que nem chega a entrar nesse metodo planoComprado

<a4j:support event="onchange" ajaxSingle="true" reRender="qtde" actionListener="#{creditoBean.planoComprado}"/> \

no log aparece esse erro:

SEVERE: Servlet.service() for servlet Faces Servlet threw exception javax.el.MethodNotFoundException: Method not found: [email removido](javax.faces.event.ActionEvent)

sendo que ele ta no meu bean

agora fikei mais confuso kkkkk :?:

vitenho

tenta assim

public void meuActionListener(ActionEvent event) {}

J

mas eu coloco esse metodo no bean?

e como eu chamo ele na pagina?

vitenho
class MeuBean{
	
	public void meuAjaxAction(){
		
	}

	public void meuAjaxActionListener(ActionEvent e){
		
	}
}


pagina:
	
	<a:commandButton action="#{MeuBean.meuAjaxAction}" actionListener="#{MeuBean.meuAjaxActionListener}"    />
J

ta dando erro ainda.....fiz assim

na minha pagina
<a4j:support event="onchange" reRender="valorCredito,qtde" actionListener="#{creditoBean.planoComprado}"/>
no meu bean
public String getPlanoComprado(ActionEvent e)
	{
//codigo

}

ele ta submitando e eu nao quero submitar....quero que ele seta uns valores no VO e volte preenchendo o input valorCredito e qtde.

o erro
Caused by: javax.el.MethodNotFoundException: Method not found: [email removido](javax.faces.event.ActionEvent)
L

se vc ta usando actionListener deveria ser

public void getPlanoComprado(ActionEvent e)  
        {  
    //codigo  
      
    }

Agora se for usar action no teu botao ai sim vc chama um metodo com retorno String:

public String getPlanoComprado()  
        {  
    //codigo  
return null;
      
    }
J

lgweb

repara que eu fiz certo no post anterior, mesmo assim ainda está submitando. Se ele submita, ele vai pra outra pagina e não renderiza os campos q eu pedi

Marcio_Nogueira

Provavélmente a fase render response não está sendo executada no ciclo de vida da aplicação, você poderia postar o log para eu dar uma olhada? :wink:

J

Marcio, eu não tenho o codigo aqui nesse computador, mas se vc quiser o bean e a tela…eu postei ai em cima…

outra tentativa q eu fiz foi no redirecionamento voltar para mesma tela…

soh que ele não ta fazendo correto.

Criado 10 de agosto de 2009
Ultima resposta 12 de ago. de 2009
Respostas 9
Participantes 4