最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

@Valid 校驗無效,BindingResult未獲得錯誤的解決

 更新時間:2021年10月23日 09:43:53   作者:積木i  
這篇文章主要介紹了@Valid 校驗無效,BindingResult未獲得錯誤的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

@Valid 校驗失效

問題描述

使用@Valid校驗實體類中的屬性stuTele

import javax.validation.constraints.Size;
...
@Size(min = 11,max = 11,message = "請輸入11位手機號碼")
private String stuTele;

Controller中,用@Valid注解對傳入的student對象屬性值校驗

public String updateStuMsg(@Valid  Student student, BindingResult bindingResult, Model model, HttpSession httpSession){......}

在傳入錯誤參數(shù)后,發(fā)現(xiàn)bindingResult中記錄的error為0,說明校驗無效

解決過程

檢查引入的依賴:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>7.0.1.Final</version>
</dependency>
<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

在將hibernate-validator的版本切換到 5.4.1.Final 后,發(fā)現(xiàn)校驗正常

所以定位為依賴的版本問題。

我的springboot版本為2.5.1,在將依賴替換為下面的內(nèi)容后,校驗生效

<!-- 此處沒有指定版本<version>,默認會使用和當(dāng)前springboot匹配的版本也就是2.5.1 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

進入spring-boot-starter-validation 里面,查看它的依賴項,其中有這樣一條

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.2.0.Final</version>
    <scope>compile</scope>
</dependency>

所以在外部修改依賴的時候,也可以直接使用這一版本。

validation-api 這條依賴可以不用保留。

那么最新的7.0.1.Final版本該如何使用?官方文檔里是這樣說的

Jakarta Bean Validation 定義了與 CDI(Jakarta EE 的上下文和依賴注入)的集成點。如果您的應(yīng)用程序在不提供這種開箱即用集成的環(huán)境中運行,您可以通過將以下 Maven 依賴項添加到您的 POM 來使用 Hibernate Validator CDI 可移植擴展:

示例 1.3:Hibernate Validator CDI 可移植擴展 Maven 依賴項

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator-cdi</artifactId>
    <version>7.0.1.Final</version>
</dependency>

請注意,在 Java EE 應(yīng)用程序服務(wù)器上運行的應(yīng)用程序通常不需要添加此依賴項。

那么,只需要把前面的依賴都替換成這一條,就可以了

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator-cdi</artifactId>
    <version>7.0.1.Final</version>
</dependency>

使用bindingResult做參數(shù)校驗

在控制類中

 @RequestMapping("/create")
    public void create(@Valid OrderForm orderForm, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
            log.error("【創(chuàng)建訂單參數(shù)不正確】,orderForm={}",orderForm);
            //bindingResult.getFieldError().getDefaultMessage()可以獲取到錯誤的提示
            throw new OrderException(ResultEnums.PARAM_ERROR.getCode(),bindingResult.getFieldError().getDefaultMessage());
        }
    }

實體類OrderForm

@Data
public class OrderForm {
    @NotEmpty(message = "姓名必填")
    private String name;//買家姓名
    @NotEmpty(message = "手機號必填")
    private String phone;//買家手機號
    @NotEmpty(message = "地址必填")
    private String address;//買家地址
    @NotEmpty(message = "openid必填")
    private String openid;//買家微信
    @NotEmpty(message = "購物車不能為空")
    private String items;//購物車
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring?Boot?Actuator?漏洞利用小結(jié)

    Spring?Boot?Actuator?漏洞利用小結(jié)

    spring對應(yīng)兩個版本,分別是Spring Boot 2.x和Spring Boot 1.x,因此后面漏洞利用的payload也會有所不同,這篇文章主要介紹了Spring?Boot?Actuator?漏洞利用小結(jié),需要的朋友可以參考下
    2023-11-11
  • 解讀nacos獲取配置文件的大致過程

    解讀nacos獲取配置文件的大致過程

    這篇文章主要介紹了nacos獲取配置文件的大致過程,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • jstack報錯Unable to open socket file解決

    jstack報錯Unable to open socket file解決

    這篇文章主要為大家介紹了jstack報錯Unable to open socket file的解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • Dubbo?retries?超時重試機制的問題原因分析及解決方案

    Dubbo?retries?超時重試機制的問題原因分析及解決方案

    這篇文章主要介紹了Dubbo?retries?超時重試機制的問題,解決方案是通過修改dubbo服務(wù)提供方,將timeout超時設(shè)為20000ms或者設(shè)置retries=“0”,禁用超時重試機制,感興趣的朋友跟隨小編一起看看吧
    2022-04-04
  • SpringBoot+Vue+Axios+BootStrap實現(xiàn)圖書的增刪改查功能示例

    SpringBoot+Vue+Axios+BootStrap實現(xiàn)圖書的增刪改查功能示例

    本文主要介紹了SpringBoot+Vue+Axios+BootStrap實現(xiàn)圖書的增刪改查功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Java編寫猜數(shù)字小游戲

    Java編寫猜數(shù)字小游戲

    這篇文章主要為大家詳細介紹了Java編寫的猜數(shù)字小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-09-09
  • Spring中基于XML的AOP配置詳解

    Spring中基于XML的AOP配置詳解

    這篇文章主要介紹了Spring中基于XML的AOP配置,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot啟動時如何修改上下文

    SpringBoot啟動時如何修改上下文

    本文介紹了如何在Spring Boot啟動時修改上下文,以便加載封裝JAR中的國際化文件,通過在resources目錄下的META-INF文件夾中的spring.factories文件中配置指定類,可以實現(xiàn)這一功能
    2024-11-11
  • Java中Maven項目導(dǎo)出jar包配置的示例代碼

    Java中Maven項目導(dǎo)出jar包配置的示例代碼

    這篇文章主要介紹了Java中Maven項目導(dǎo)出jar包配置的示例代碼,需要的朋友可以參考下
    2018-11-11
  • Java+ElasticSearch+Pytorch實現(xiàn)以圖搜圖功能

    Java+ElasticSearch+Pytorch實現(xiàn)以圖搜圖功能

    這篇文章主要為大家詳細介紹了Java如何利用ElasticSearch和Pytorch實現(xiàn)以圖搜圖功能,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-06-06

最新評論

上犹县| 天水市| 阳春市| 上犹县| 阿拉善左旗| 象州县| 沙坪坝区| 简阳市| 淮南市| 上思县| 深圳市| 双牌县| 莫力| 普洱| 论坛| 于都县| 咸宁市| 康马县| 黄浦区| 阜新市| 杭州市| 南华县| 嘉定区| 乌海市| 岳普湖县| 台北市| 东乌| 临桂县| 阳曲县| 麻栗坡县| 河曲县| 沙洋县| 阿鲁科尔沁旗| 榆中县| 吉隆县| 胶州市| 石屏县| 阳泉市| 华阴市| 乌恰县| 邢台市|