Condicao when - jsf - limite de valor em campo

4 respostas
F

Ola pessoal,

Eu tenho um codigo que tem um cadastro de produtos
Numa tela de web eu escolho os produtos que quero e ele armazena num banco . Funciona 100%
Acontece que as vezes tem produtos com 1kg, (1.000) e outros com 100Kg(100.000), e na hora que faz o calculo do peso, quando é acima de 500kg esta dando erro, meu campo definido esta como double 16,4
Mas na hora que eu ponho uma quantidade, por exemplo: 10 * 200kg, ele da erro
Estou tentando ver se consigo por uma condicao, do tipo: se a quantidade * peso for mais que 900kg, zera o campo quantidade e emite o aviso

codigo:

<h:panelGrid columns="2">
    <h:outputText id="pesagem" value="#{produto.peso}"/>
 </h:panelGrid>
..
 ..
   <h:column>
       <f:facet name="teste"><h:outputText value="Qtdade"/></f:facet>
          <h:inputText id="qtde" value="#{produto.quantidade}">
        </h:inputText>
  <h:commandLink id="updateItens" actionListener="#{armazemBean.updateItens}">
    <h:graphicImage url="/producao/img_3.jpg" />
  </h:commandLink>
  </h:column>
 ..
 <!-- Aqui pensei em colocar a condicação.. -->
  <c:choose>
 <c:when test="#{produto.peso * quantidade > 500}"></c:when> 
 "Emite uma mensagem na tela e zera a quantidade digitada"
 ..

Na minha ideia era tentar colocar estar condicao ai, tentei alguns codigos, mas sempre esbarro na questao dele emitir a mensagem e zerar o campo quantidade de novo
Alguem tem alguma ideia?

obrigado

4 Respostas

Danilo_Carvalho

fabio silveira tudo bom!!!

Não entendi realmente por que quer fazer isso mas se quer renderizar mensagens na tela de acordo com condições use
o rendered="#{condição}", é a melhor maneira!

Qualquer coisa posta ai.

Até mais.

F

Danilo Carvalho:
fabio silveira tudo bom!!!

Não entendi realmente por que quer fazer isso mas se quer renderizar mensagens na tela de acordo com condições use
o rendered="#{condição}", é a melhor maneira!

Qualquer coisa posta ai.

Até mais.

Danilo, obrigado pela resposta

Entao, é preciso fazer isso, porque determinados produtos, sao um peso alem do “normal”, por ex: 700kg, diante disso nao vale a pena, vender (100 unid pela internet), é melhor ligar e negociar entende!?

As condicoes feitas dentro do rendered sao do tipo: #{produto.peso * quantidade > 5000} é isso??

Danilo_Carvalho

Entendi porque!

Sim o rendered aceita condições que vão retornar um boolean, depois você pode usar o reRender=“idDoComponente” para o campo que sera setado com zero seja renderizado novamente
após a alteração do valor.

Até mais.

Hebert_Coelho

crie um método em uma classe:

public boolean isPesoOk(){ return produto.peso * quantidade > 5000; }

e depois faça rendered="#{classe.pesoOk}"

Criado 10 de fevereiro de 2012
Ultima resposta 10 de fev. de 2012
Respostas 4
Participantes 3