possuo um campo valor no meu formulário, e ao digitar ele quero que atualize um componente Total serviço, como posso fazer isso? segue meu formulário.
Como informar um valor de um campo e automaticamente preencher um componente?
9 Respostas
Javascript?
Ajax?
Depende de como você quer fazer.
Vejo que utiliza primefaces, então, você pode, simplesmente, criar uma função javascript que vá fazendo os cálculos ou, então (e o que eu acho mais coerente), associar um evento ajax e ao dispará-lo, atualizar a informação no seu managed bean, o que fará com que seja atualizado no componente total…
no caso, queria só pegar o valor do campo que for digitado e já renderizar no componente TotalServico por exemplo.
Como estou aprendendo primefaces, vejo que existe uma forma utilizando AJAX. porém ainda não sei fazer.
Vamos lá. se você está usando o primefaces, vamos usar os recursos que o framework te oferece:
Primeiro, você vai ter no seu bean atributos que representem valor e total serviço;
você pode criar um método no seu bean, chamado atualizaTotal() que recebe o valor do serviço e faz os calculos somatórios para acrescentar ao Total serviço;
dai você coloca no evento onChance, ou onBlur ou algo do gênero para que seu evento de atualização seja disparado, e coloca no atributo update o id do campo que contém o valor total de serviço.
um bom exemplo é este aqui.
massa! acabei de resolver… estava esquecendo do listener dentro da tag <p:ajax. vlw
man mostra o codigo como vc fez estou com o meso problema
Fácil…
meu xhtml
<p:outputLabel value="valor" for="valor" />
<p:inputText styleClass="moeda" value="#{cadastroServicoBean.servico.valor}" size="5" id="valor" required="true">
<p:ajax process="@this" update="totalServico" event="keyup" />
<f:convertNumber minFractionDigits="2" maxFractionDigits="2"/>
</p:inputText>
<p:outputLabel value="Total Serviço" style="font-weight:bold;" />
<p:outputLabel id="totalServico" style="font-weight:bold;" value="R$ #{cadastroServicoBean.servico.valor}">
<f:convertNumber pattern="#,##0.00" />
</p:outputLabel>
man uma duvida rs no campo total serviço ele vai sempre somar o valor em que vai ser digitado no campo valor ou ele vai ser sempre ser susbstituido ?
No modo que está, apenas atualizar o valor.
Para fazer com que o valor seja somado, você precisa invocar um método e realizar o cálculo no managed bean
entendi man vlw
