Funciona normalmente porém o usuário digita da direita para esquerda. Meu problema é que em algumas máscaras eu tenho formato 1.0000000. Digitando da direita para a esquerda o usuário tem que digitar todos os zeros antes do 1. E para a esquerda não tem um limite.
Alguém conhece alguma maneira de corrigir ou algum outro componente ?
<p:inputTextmaxlength="15"size="20"id="parcela"required="true"value="#{formPropostaBean.bean.valorParcela}"requiredMessage="Preencha este campo com o valor da parcela"><f:convertNumberpattern="#,##0.00"></f:convertNumber><p:ajaxupdate="parcela, msgParcela"process="parcela"event="change"/><f:validatorvalidatorId="MoedaValidator"/></p:inputText>
E
edudebom
E o que teria no MoedaValidator ?
J
joaoorso
é um Validator.
packagevalidator;importjava.math.BigDecimal;importjavax.faces.application.FacesMessage;importjavax.faces.component.UIComponent;importjavax.faces.context.FacesContext;importjavax.faces.validator.FacesValidator;importjavax.faces.validator.Validator;importjavax.faces.validator.ValidatorException;/*** Efetua a validação de um valor monetário.*/@FacesValidator("MoedaValidator")publicclassMoedaValidatorimplementsValidator{/** * Método responsável por validar os campos com moeda. Caso ocorra algum erro lança uma ValidatorException. */publicvoidvalidate(FacesContextctx,UIComponentcomp,Objectval)throwsValidatorException{BigDecimalvalor=(BigDecimal)val;if(val==null)return;if(valor.intValue()==0){FacesMessagemessage=newFacesMessage("Preencha com o valor válido maior que zero");message.setSeverity(FacesMessage.SEVERITY_ERROR);thrownewValidatorException(message);}}}