亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法將自定義驗證應用于 requestParam

無法將自定義驗證應用于 requestParam

紅糖糍粑 2023-04-26 16:24:17
我有我的 RequestParam,我需要驗證它,但是 mu 自定義驗證不適用,我的控制器@RestController@Validatedclass 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));        }    }
查看完整描述

2 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

需要在我的@interface CustomValidation. 這意味著驗證也可以用于參數。

@Target({ ElementType.PARAMETER })


查看完整回答
反對 回復 2023-04-26
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

在配置中啟用參數驗證:


 @Bean

public Validator validator() {

    return new LocalValidatorFactoryBean();

}


@Bean

public MethodValidationPostProcessor methodValidationPostProcessor() {

    MethodValidationPostProcessor methodValidationPostProcessor = new MethodValidationPostProcessor();

    methodValidationPostProcessor.setValidator(validator());

    return methodValidationPostProcessor;

}


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號