Você está aqui: JSF - Java Server Faces ::: JSF Validation Controls (Controles de Validação) :::

Validando uma faixa de valores de ponto-flutuante usando o controle <f:validateDoubleRange>

Quantidade de visualizações: 7973 vezes
O controle <f:validateDoubleRange>, uma instância da classe LongRangeValidator (no pacote javax.faces.validator) é usado quando queremos verificar se um valor do tipo double, ou seja, um valor com ponto decimal, está dentro de uma determinada faixa. Desta forma, podemos especificar um valor mínimo e um valor máximo e o controle se encarregará de fazer esta verificação.

Antes, é importante estar ciente que, se tivermos um campo <h:inputText> ligado à uma propriedade do tipo double de um bean, o JSF espera um valor de ponto-flutuante usando-se o ponto "." como separador. Se usarmos vírgula, o formulário não será enviado e teremos uma mensagem do tipo:

j_idt8:preco: '45,3' must be a number consisting of one or more digits.

Se o valor for informado como 45.3 o problema é resolvido. Em minhas outras dicas sobre JSF você encontrará formas de resolver esta limitação, uma vez que os usuários brasileiros estão acostumados a informar valores de ponto-flutuante como "45,90" e não "45.90".

Mas, continuando com o controle <f:validateDoubleRange> nós vamos ver como é possível garantir que o valor digitado em um campo de texto esteja na faixa de 0.0 à 100.00. Veja o código para um página JSP contendo uma caixa de texto <h:inputText> e um controle <f:validateDoubleRange>:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Produtos</title>
    </h:head>
    <h:body>
       <h4>Cadastro de Produtos</h4>

       <h:form>

          Preço do Produto:<br />
          <h:inputText size ="40" id="preco" value="#{produto.preco}">
            <f:validateDoubleRange minimum="0.0" maximum="100.00" />
          </h:inputText>

          <h:commandButton id="submit" value="Gravar Dados" 
            action="#{produto.gravar}" />
       
       </h:form>

    </h:body>
</html>

Ao executarmos a aplicação e informarmos valores tais como -34 ou 120.50 teremos a seguinte mensagem:

j_idt8:preco: Validation Error: Specified attribute is not between the expected values of 0 and 100.

É claro que esta mensagem em inglês não parece muito informativa aos nossos usuários de lingua portuguesa. Assim, basta fornecer o texto da mensagem personalizada para a propriedade validatorMessage do controle <h:inputText>. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<h:inputText size ="40" id="preco" value="#{produto.preco}"
  validatorMessage="O valor não está dentro da faixa permitida">
  <f:validateDoubleRange minimum="0.0" maximum="100.00" />
</h:inputText>

Agora, se o valor estiver fora da faixa informada, a seguinte mensagem será exibida:

O valor não está dentro da faixa permitida

É possível omitir uma das propriedades do controle de validação <f:validateDoubleRange>. Pode haver situações nas quais queremos validar apenas a faixa inferior ou superior. Veja como podemos, por exemplo, informar apenas a faixa inferior do preço de um produto:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<h:inputText size ="40" id="preco" value="#{produto.preco}"
  validatorMessage="O valor não está dentro da faixa permitida">
  <f:validateDoubleRange minimum="10.0" />
</h:inputText>


Link para compartilhar na Internet ou com seus amigos:

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Equação da continuidade

Um Boeing 747 (figura) tem em torno de 500 m2 de área alar (área total das duas asas). Considere que ele está se movendo a 230 m/s em relação ao ar. As linhas de fluxo acima da asa estão comprimidas em 80% de sua área original. As linhas de fluxo abaixo da asa não estão comprimidas. Calcule a força resultante devido à pressão à qual o Boeing está submetido. Considere a densidade do ar na altitude em que o Boeing está voando ρar = 0,40 kg/m3.



A) 1,27 x 106 N

B) 5,91 kN

C) 2,98 x 106 N

D) 2,20 x 106 N

E) 3,48 x 106 N
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Alvenaria: Técnicas construtivas

A elevação de paredes em alvenaria deve:

A) Iniciar no meio do vão em direção aos cantos.

B) Iniciar do lado direito para o lado esquerdo.

C) Iniciar do lado esquerdo para o lado direito.

D) Iniciar dos cantos, ou junto ao pilares, em direção ao centro.

E) Iniciar pelos cantos, em toda a altura do pé-direito, e depois seguir em direção ao centro.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Dimensionamento de Redes de Distribuição de Água

Qual a vazão em marcha e específica para uma cidade com 250.000 habitantes, área de 1.250 ha e consumo per capta de 275 L/hab.dia? Considere que existem 12 km de rede instalados.

A) qm = 0,12 L/s.ha e qd = 1,15 L/s.m.

B) qm = 1,15 L/s.ha e qd = 0,12 L/s.m.

C) Q = 1,43 m3/s.

D) qm = 1,15 L/s.m e qd = 0,12 L/s.ha.

E) qm = 0,12 L/s.m e qd = 1,15 L/s.ha.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Postura ética profissional

A resolução de dilemas éticos deve ser resultado de um processo de reflexão e análise, integrando valores morais e fatos para buscar uma solução moralmente correta.

Segundo Holtzapple e Reece (2006), quais os aspectos fundamentais para a resolução de dilemas éticos? Assinale a alternativa correta:

A) Ter clareza moral, ter clareza conceitual, manter-se parcial, conhecer todas as alternativas viáveis, ter razoabilidade.

B) Ter clareza moral, ter imprecisão conceitual, manter-se atualizado, conhecer todas as alternativas viáveis, ter razoabilidade.

C) Ter clareza moral, ter clareza conceitual, manter-se parcial, considerar exclusivamente as alternativas lucrativas, ter razoabilidade.

D) Ter variabilidade moral, ter clareza conceitual, manter-se alheio, conhecer todas as alternativas viáveis, ter razoabilidade.

E) Ter clareza moral, ter clareza conceitual, manter-se atualizado, conhecer todas as alternativas viáveis, ter razoabilidade.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Ética e Legislação Profissional

Postura ética profissional

Os princípios éticos que norteiam a prática profissional dos engenheiros não são definidos por uma única entidade ou indivíduo específico. Há diferentes fontes e organizações que estabelecem a conduta ética a ser seguida por esses profissionais.

Assinale a alternativa que melhor apresenta essas fontes e organizações, segundo Cocian (2016):

A) Organizações profissionais, legislação e regulamentações, instituições de ensino, experiência profissional.

B) A Associação Mundial de Engenheiros, o Conselho de Ética, a Sociedade Internacional de Engenheiros e a Federação Internacional de Engenharia (FIE).

C) Os códigos de ética redigidos pelas empresas Apple, Microsoft, Google e Amazon.

D) As diretrizes éticas de partidos políticos, organizações ambientais, grupos de consumidores e clubes esportivos.

E) Os princípios éticos estabelecidos por escritores famosos, celebridades, filósofos antigos e artistas renomados.
Verificar Resposta Estudar Cards Todas as Questões

Veja mais Dicas e truques de JSF - Java Server Faces

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 40 usuários muito felizes estudando em nosso site.