JSF - inputText onblur ajax - backing bean não atualiza atributo

3 respostas
S

Estou tentando fazer um onblur num inputText com ajax no JSF, porém o mesmo não atualiza o valor, ou o novo valor no backing bean.

segue abaixo:

no jsp?

<h:inputText value="#{mMBean.teste}" binding="#{mMBean.input}">
	 <a4j:support event="onblur" ajaxSingle="true" action="#{mMBean.meuMetodo}" />
</h:inputText>

e no managed bean:

...
        private Integer teste = new Integer("10");

	public Integer getTeste() {
		return teste;
	}

	public void setTeste(Integer teste) {
		this.teste = teste;
	}
	
	private HtmlInputText input;
	
	

	public HtmlInputText getInput() {
		return input;
	}

	public void setInput(HtmlInputText input) {
		this.input = input;
	}

        public void meuMetodo() {
                System.out.println(teste);
                System.out.println(input.getValue() + " " + input.getSubmittedValue());
        }
...

o print disso após eu modificar o valor na tela (por ex. se digitar 5 no input na tela) e disparar o onblur fica assim:

10
10 null

Não deveria mostrar 5?

Existe alguma forma de pegar o novo valor digitado no campo lá no método?

A priori deveria funcionar, deve ter algum detalhe passando despercebido.

Obrigado.

3 Respostas

S

você não precisa do binding com o htmlinput … basta vocẽ manda imprimir o valor de teste

S

Acabei descobrindo o problema, no inputText tinha um atributo disabled, retirando o mesmo o problema passou a não ocorrer mais.

Segue jsp com problema:

<h:inputText value="#{mMBean.teste}" disabled="#{mMBean.disabled}">
	 <a4j:support event="onblur" ajaxSingle="true" action="#{mMBean.meuMetodo}" />
</h:inputText>

Segue jsp SEM problema (o disabled foi retirado):

<h:inputText value="#{mMBean.teste}">
	 <a4j:support event="onblur" ajaxSingle="true" action="#{mMBean.meuMetodo}" />
</h:inputText>

Esse input era carregado desabilitado, porém com a ação em outros campos da tela ele ficava habilitado, mas mesmo abilitado o valor não era atualizado no managed bean, sem o disabled dinâmico do campo o valor digitado é atualizado normalmente no backing bean.

W

estou com esse problema mais no PrimeFaces

Criado 1 de dezembro de 2009
Ultima resposta 10 de jan. de 2013
Respostas 3
Participantes 3