第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Validator 和 DataBinder:如何單獨(dú)處理多值 bean 字段

Validator 和 DataBinder:如何單獨(dú)處理多值 bean 字段

慕田峪7331174 2023-09-06 14:59:35
我有一個 bean,其中有一個 List 類型的字段。  public List<MyClass> getter() {    return field;  }  public void setter(MyClass[] source) {    this.field = Arrays.asList(source);  }我已經(jīng)實(shí)現(xiàn)了一個轉(zhuǎn)換器Converter<String, MyClass>,它也可以工作。如果字符串可以轉(zhuǎn)換為 MyClass,則將其轉(zhuǎn)換,如果不能,則拋出異常,并將 的實(shí)例FieldError包含在Errors errors = binder.getBindingResult();. 問題是,F(xiàn)ieldError#getRejected方法 aString包含有效值和無效值的逗號分隔列表,這可能會產(chǎn)生誤導(dǎo)。而且沒有空格,這太難看了。像這樣:Field has invalid value of "valid,invalid"雖然我更愿意Field has invalid value of "invalid"換句話說,如何讓轉(zhuǎn)換和驗(yàn)證對每個值單獨(dú)進(jìn)行?
查看完整描述

1 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個贊

雖然spring的做法不是很智能,但是邏輯上是正確的。以下代碼可以幫助您找到無效值。


            FieldError fieldError = bindingResult.getFieldError();

            if (fieldError != null && fieldError.contains(TypeMismatchException.class)) {

                TypeMismatchException typeMismatchException = fieldError.unwrap(TypeMismatchException.class);

                ConversionFailedException conversionFailedException = findConversionFailedException(typeMismatchException);

                if (conversionFailedException != null) {

                    Object value = conversionFailedException.getValue();

                    // get the invalid field value

                }

            }

    /**

     * Recursively find the ConversionFailedException

     * @param target

     * @return

     */

    public ConversionFailedException findConversionFailedException(Throwable target) {

        Throwable cause = target.getCause();

        if (cause == null) {

            return null;

        } else if (cause instanceof ConversionFailedException) {

            return (ConversionFailedException)cause;

        }

        return findConversionFailedException(target);

    }


查看完整回答
反對 回復(fù) 2023-09-06
  • 1 回答
  • 0 關(guān)注
  • 103 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號