Пользовательский параметр Param Validator не работает в SpringBoot - PullRequest
0 голосов
/ 01 июня 2018

Ниже приведен валидатор для проверки расширения файла

FileExtensionValidator.java

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

import org.springframework.web.multipart.MultipartFile;

public class FileExtensionValidator implements ConstraintValidator<ValidExtension, MultipartFile> {

    @Override
    public void initialize(ValidExtension extension) {

    }

    @Override
    public boolean isValid(MultipartFile file, ConstraintValidatorContext context) {

        String extension = "";
        if (null != file) {
            extension = file.getName();
        }

        return (null != extension) && (extension.endsWith(".png") || extension.endsWith(".PNG")
                || extension.endsWith(".JPEG") || extension.endsWith(".jpeg")) ? true : false;

    }

}

вот интерфейс проверки ValidExtension.java

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.*;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, PARAMETER, TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = FileExtensionValidator.class)
@Documented
public @interface ValidExtension {

    String message() default "Not a valid Email";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

Это используемый контроллер

@RequestMapping(value = "/file/upload", method = POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = APPLICATION_JSON_VALUE)
    public BaseResponse uploadFile(@ValidExtension @RequestParam("file") MultipartFile file) {
        return fileStorageService.upload(file);
    }

Следующее было добавлено в pom

        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>1.5.1</version>
        </dependency>

Spring versionused: 4

Я получаю свой метод в логике валидации.Пожалуйста, дайте мне понять, если я пропускаю какой-либо основной шаг.Уже проверены основные учебники, все говорят одинаковые шаги.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...