Somatorio simple JSF com Ajax

0 respostas
V

Boa tarde estou iniciando com JSF e está dúvida creio que seja simples.

Eu gostaria de saber porque não consigo recuperar todos os valores preenchidos, ou seja se eu preencho o valor 1 e depois eu preencho o valor 2 eu não consigo recuperar o valor 1, ele  recupera o valor no qual eu estou digitando. Eu gostaria de saber porque não fuciona com ajax. 
   Se usasse o valueChangeListener funcionaria, porem eu tenho varios campos para preencher e se ficar dando muito submites ficaria muito ruim.

Segue o codigo abaixo.

<h:form>
			<h:outputLabel value="Valor 1: " /> 
			<p:inputText id="valor1" value="${meuBean.valor1}">
				<f:ajax event="change" render="valor3" listener="#{meuBean.somatorio}"></f:ajax>
			</p:inputText>
			<h:outputLabel value="Valor 2: " />
			<p:inputText id="valor2" value="${meuBean.valor2}">
				<f:ajax event="change" render="valor3" listener="#{meuBean.somatorio}"></f:ajax>
			</p:inputText>
						
			<h:outputLabel value="Valor 3: " />
			<p:inputText id="valor3" value="${meuBean.valor3}"/>
       </h:form>
public class MeuBean{
        private Long valor1;
	private Long valor2;
	private Long valor3;

	public void somatorio(AjaxBehaviorEvent evt){
		if(getValor1() != null && getValor2()!= null){
			setValor3(getValor1()+getValor2());
		}
	}


        public Long getValor1() {
		return valor1;
	}


	public void setValor1(Long valor1) {
		this.valor1 = valor1;
	}


	public Long getValor2() {
		return valor2;
	}


	public void setValor2(Long valor2) {
		this.valor2 = valor2;
	}


	public Long getValor3() {
		return valor3;
	}


	public void setValor3(Long valor3) {
		this.valor3 = valor3;
	}
Criado 7 de novembro de 2011
Respostas 0
Participantes 1