5
respostas

Como pegar valores de um <p:spinner /> para realizar cálculos?

Bom dia, o que estou querendo fazer é o seguinte,

 <h:form>
            <p:panelGrid columns="1" >

                <p:spinner id="quantidade"  />
                <p:commandButton value="SOMAR" />

                <p:inputNumber value="30"  id="valor_unitario" />

                <p:inputText  id="resultado" placeholder="mostra o resultado"  />
            </p:panelGrid>
        </h:form>

De acordo com o código acima, quero pegar o valor atribuído ao componente <p:spinner /> multiplicar pelo valor do <p:inputNumber /> e mostrar o resultado em um <p:inputText />.

O procedimento será realizado logo após o usuário clicar no botão SOMA.

5 respostas

Você precisa fazer o bind com seu managed bean e associar o botão a um método do mesmo managed bean para fazer a conta.

como Assim Alberto? pode mostrar um exemplo

Opa, mais tarde posso sim. Enquanto isso, vc já fez os cursos de jsf e tá tranquilo com os conceitos da tecnologia? Bind, managed bean etc...

Já Conseguir fazer,  só falta alguns ajustes...
 <h:body>
        <h:form>
            <h:outputText value="Numero1" />
            <p:spinner value="#{somaBean.soma.quantidade}" />
            <h:outputText value="Numero1" />
            <h:inputText value="#{somaBean.soma.num2}" disabled="true"/>
            <h:commandButton value="somar" action="#{somaBean.multiplicar()}"/>

            <h:outputText value="Resultado" />
            <h:inputText value="#{somaBean.soma.resultado}" disabled="true" />
        </h:form>

    </h:body>
public class Soma {

    private int quantidade;
    private double num1;
    private double num2=25;
    private double resultado;

/*get e set* omitidos/
@ManagedBean
public class SomaBean {

    private Soma soma = new Soma();

    public String somar() {

        soma.setResultado(soma.getNum1()+soma.getNum2());

        return null;
    }

    public String multiplicar(){

        soma.setResultado(soma.getQuantidade()*soma.getNum2());
        return null;
    }

/*get e set omitidos*/

é bem simples eu só não estava sabendo pegar os valores para somar, agora vou partir pra segunda etapa que é fazer com que o usuário marque a opção desejada através de um checkbox e ele vai calcular o valor total. Aceito sugestões..rs

Opa, em relação ao checkbox a ideia é a mesma.. vc vai fazer o binding com uma propriedade do seu managed bean e manipular a informação no método que lida com a ação.