猿问

无法将自定义验证应用于 requestParam

我有我的 RequestParam,我需要验证它,但是 mu 自定义验证不适用,我的控制器


@RestController

@Validated

class ExchangeController {


    private static final Logger logger = Logger.getLogger(ExchangeController.class.getName());


    @SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection")

    @Autowired

    @Qualifier("dataService")

    private CurrencyExchangeService currencyExchangeService;


    @RequestMapping(value = "/", method = RequestMethod.GET, produces = "application/json")

    public Object converting(@RequestParam("fromCurrency") @NotNull @CurrencyValidation String fromCurrency,

                             @RequestParam("toCurrency") @NotNull String toCurrency,

                             @RequestParam("amount") @NotNull String amount) throws IOException {

        BigDecimal convertedAmount = currencyExchangeService.convert(fromCurrency, toCurrency, new BigDecimal(amount));

        return new ExchangeRateDTO(fromCurrency, toCurrency, new BigDecimal(amount), convertedAmount);


    }

}

和自定义验证


public class ConstractCurrencyValidator implements

            ConstraintValidator<CurrencyValidation, String> {

        @Override

        public void initialize(CurrencyValidation currency) {

        }


        @Override

        public boolean isValid(String currency, ConstraintValidatorContext constraintValidatorContext) {

            return currency != null && Currency.getAvailableCurrencies().contains(Currency.getInstance(currency));

        }

    }


红糖糍粑
浏览 123回答 2
2回答

慕尼黑8549860

需要在我的@interface CustomValidation.&nbsp;这意味着验证也可以用于参数。@Target({&nbsp;ElementType.PARAMETER&nbsp;})

MMTTMM

在配置中启用参数验证:&nbsp;@Beanpublic Validator validator() {&nbsp; &nbsp; return new LocalValidatorFactoryBean();}@Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() {&nbsp; &nbsp; MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor();&nbsp; &nbsp; methodValidationPostProcessor.setValidator(validator());&nbsp; &nbsp; return methodValidationPostProcessor;}
随时随地看视频慕课网APP

相关分类

Java
我要回答