Как настроить сообщение об ошибке проверки Java @NotNull - PullRequest
3 голосов
/ 21 марта 2019
    @POST
    @Path("")
    @Consumes({"application/x-www-form-urlencoded"})
    TokenDTO login(@ApiParam(value = "The id of the channel used", required = true )  @HeaderParam("channel")  @NotEmpty(message = "email.notempty") String channel) throws Exception;

Привет, ребята, я пытаюсь проверить параметр канала, чтобы он не был пустым.Если я анализирую его пустым, он просто выбрасывает меня:

{
"code": 26,
"message": "Validation Error: :NotEmpty",
"data": [
    {
        "type": "NotEmpty",
        "property": "",
        "value": null,
        "inputType": "body",
        "attributes": null
    }
],
"source": "XXXX",
"type": "ValidationException",
"guid": "965ee91a-99a1-4ae5-b721-6415a80dad23"
}

Подскажите, пожалуйста, как мне настроить сообщение об ошибке проверки?

РЕДАКТИРОВАТЬ: я видел много статей, описывающих, какнастроить сообщение проверки «поля».Но я хочу проверить параметр метода.

1 Ответ

1 голос
/ 21 марта 2019

В вашем параметре обязательно добавьте фигурные скобки, так что это будет выглядеть так

@NotEmpty(message = "{email.notempty}") String email

Затем определите LocalValidatorFactoryBean в конфигурации вашего приложения:

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

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

Наконец, создайтефайл ValidationMessages.properties в пути к классам, содержащий:

email.notempty=E-mail address is required
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...