JsfExceptionHandler ConstraintViolationImp messageTemplate

1 resposta
jsf
jeroqueiroz

Tenho o mapeamento na classe usuário:

@NotNull(message = "Contato não pode ser vázio.")
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "contact_id")
@Getter
@Setter
private Contato contato;

O qual tenho a classe JsfExceptionHandler que captura todas as exceções da aplicação. Efetuei o tratamento para erros de constraint violations, porém preciso que seja exibido somente a mensagem da validação e não todo o texto do erro como esta acontecendo.

Mensagem que esta sendo exibida:
Validation failed for classes [br.com.openfiscal.model.Usuario] during persist time for groups [javax.validation.groups.Default, ] List of constraint violations:[ ConstraintViolationImpl{interpolatedMessage=‘Contato não pode ser vázio.’, propertyPath=contato, rootBeanClass=class br.com.openfiscal.model.Usuario, messageTemplate=‘Contato não pode ser vázio.’} ]

Desejo exibir somente o messageTemplate.

1 Resposta

jeroqueiroz
if (constraintViolationException != null) {
handled = true;					
FacesUtil.addErrorMessage(constraintViolationException.getMessage());
}

Metodo:

private ConstraintViolationException getConstraintViolationException(Throwable exception) {
    		if (exception instanceof ConstraintViolationException) {
    			return (ConstraintViolationException) exception;
    		} else if (exception.getCause() != null) {
    			return getConstraintViolationException(exception.getCause());
    		}
    		return null;
    	}
Criado 17 de dezembro de 2016
Ultima resposta 17 de dez. de 2016
Respostas 1
Participantes 1