Bom dia,
Em outro tópico aqui do fórum, tinha uma validação de valor monetário em primefaces.
Só que eu não sei onde colocar esse “msgValorImob”, de onde essa mensagem vai vir, no tópico não explica e já está fechado.
Link do tópico: Máscara Moeda JSF Primefaces
Alguém pode dar uma ajuda?
Agradeço
<p:inputText id="valorImob" value="#{edesImobilizadasController.selected.valorImob}" title="#{bundle.CreateEdesImobilizadasTitle_valorImob}" requiredMessage="Preencha com o Valor Imobilizado.">
<f:convertNumber pattern="#.##0.00"></f:convertNumber>
<p:ajax update="valorImob, msgValorImob" process="valorImob" event="change" />
<f:validator validatorId="MoedaValidator" />
</p:inputText>
Classe de validação:
package validator;
import java.math.BigDecimal;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;
/**
* Efetua a validação de um valor monetário.
*/
@FacesValidator("MoedaValidator")
public class MoedaValidator implements Validator {
/**
* Método responsável por validar os campos com moeda. Caso ocorra algum erro lança uma ValidatorException.
*/
@Override
public void validate(FacesContext ctx, UIComponent comp, Object val) throws ValidatorException {
BigDecimal valor = (BigDecimal) val;
if(val == null)
return;
if (valor.intValue() == 0) {
FacesMessage message = new FacesMessage("Preencha com o valor válido maior que zero");
message.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ValidatorException(message);
}
}
}