1
resposta

Spring Boot 2.0.2 - Validação de Mensagens dos Campos

Boa tarde, estou com um problema ao tentar exibir uma messagem do meu messages.properties quando é lançado uma exceção de ConstraintViolationException. Eu tenho essa mensagem :

ConstraintViolationImpl{interpolatedMessage='{validation.social-name}', propertyPath=socialName, rootBeanClass=class com.example.app.models.entities.Company, messageTemplate='{validation.social-name}'}

Mas na minha messages.properties eu tenho ela definida como:

validation.social-name=Razão social não pode ser branco

Segue o código abaixo:

@SpringBootApplication
public class App {

    @Bean
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }

    @Bean
    public LocalValidatorFactoryBean validator() {
        LocalValidatorFactoryBean bean = new LocalValidatorFactoryBean();
        bean.setValidationMessageSource(messageSource());
        return bean;
    }

    public static void main(String[] args) {
        SpringApplication.run(App .class, args);
    }

}
@Entity
@Data
@Builder(toBuilder = true)
@AllArgsConstructor
@NoArgsConstructor
public class Company {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(nullable = false)
    @CNPJ
    private String cnpj;

    @Column(nullable = false)
    @NotBlank(message = "{validation.social-name}")
    private String socialName;

}

Queria saber também se dessa forma é uma boa pática de desenvolvimento colocar mensagens de retorno para o meu úsuario no modelo da aplicação, ou se tem uma melhor forma de gerenciar esses retornos.

1 resposta

Fala Alex, tudo bem ?

Respondi essa dúvida numa outra thread que você iniciou. Vamos manter aquela aberta e encerrar essa aqui, blz ?

Abraço!