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: 8010 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 para ajustar o código abaixo de acordo com as suas necessidades, me chama no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- <?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 para ajustar o código abaixo de acordo com as suas necessidades, me chama no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- <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 para ajustar o código abaixo de acordo com as suas necessidades, me chama no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- <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> |
![]() |
Veja mais Dicas e truques de JSF - Java Server Faces |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |