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

springboot @validated List校驗失效問題

 更新時間:2024年07月11日 09:08:32   作者:我有一只肥螳螂  
這篇文章主要介紹了springboot @validated List校驗失效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

springboot @validated List校驗失效

添加依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

@validated 和 @valid 的區(qū)別

  • @Validated:提供了一個分組功能,可以在入?yún)Ⅱ炞C時,根據(jù)不同的分組采用不同的驗證機制。沒有添加分組屬性時,默認驗證沒有分組的驗證屬性。
  • @Validated:用在類型、方法和方法參數(shù)上。但不能用于成員屬性(field)
  • @Valid:可以用在方法、構(gòu)造函數(shù)、方法參數(shù)和成員屬性(field)上,所以可以用@Valid實現(xiàn)嵌套驗證

問題

@Validated用在列表上是不生效的

@ApiOperation(value = "查詢列表", notes = "查詢列表")
@GetMapping(value = "/test/list")
String listTest( @RequestBody @Validated List<TestListReqDTO> list) {
    return "成功查詢";
}
@Data
@ApiModel(value = "TestListReqDTO", description = "列表查詢")
public class TestListReqDTO   {

    @ApiModelProperty("id")
    @NotNull(message = "id 不能為空")
    Long id;

    @ApiModelProperty("名稱")
    @NotBlank(message = "名稱 不能為空")
    String name;
}

解決方案

創(chuàng)建 ValidatedList

@Data
public class ValidatedList<E> implements List<E> , Serializable {
    @Valid
    private List<E> list = new LinkedList<>();

    @Override
    public int size() {
        return list.size();
    }

    @Override
    public boolean isEmpty() {
        return list.isEmpty();
    }

    @Override
    public boolean contains(Object o) {
        return list.contains(o);
    }

    @Override
    public Iterator<E> iterator() {
        return list.iterator();
    }

    @Override
    public Object[] toArray() {
        return list.toArray();
    }

    @Override
    public <T> T[] toArray(T[] a) {
        return list.toArray(a);
    }

    @Override
    public boolean add(E e) {
        return list.add(e);
    }

    @Override
    public boolean remove(Object o) {
        return list.remove(o);
    }

    @Override
    public boolean containsAll(Collection<?> c) {
        return list.containsAll(c);
    }

    @Override
    public boolean addAll(Collection<? extends E> c) {
        return list.addAll(c);
    }

    @Override
    public boolean addAll(int index, Collection<? extends E> c) {
        return list.addAll(index, c);
    }

    @Override
    public boolean removeAll(Collection<?> c) {
        return list.removeAll(c);
    }

    @Override
    public boolean retainAll(Collection<?> c) {
        return list.retainAll(c);
    }

    @Override
    public void clear() {
        list.clear();
    }

    @Override
    public E get(int index) {
        return list.get(index);
    }

    @Override
    public E set(int index, E element) {
        return list.set(index, element);
    }

    @Override
    public void add(int index, E element) {
        list.add(index, element);
    }

    @Override
    public E remove(int index) {
        return list.remove(index);
    }

    @Override
    public int indexOf(Object o) {
        return list.indexOf(o);
    }

    @Override
    public int lastIndexOf(Object o) {
        return list.lastIndexOf(o);
    }

    @Override
    public ListIterator<E> listIterator() {
        return list.listIterator();
    }

    @Override
    public ListIterator<E> listIterator(int index) {
        return list.listIterator(index);
    }

    @Override
    public List<E> subList(int fromIndex, int toIndex) {
        return list.subList(fromIndex, toIndex);
    }
}

使用 ValidatedList

@ApiOperation(value = "查詢列表", notes = "查詢列表")
@GetMapping(value = "/test/list/valid")
String listTest(@RequestBody @Validated ValidatedList<TestListReqDTO> list) {
    return "成功查詢";
}

總結(jié)

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

相關(guān)文章

  • MyBatis實現(xiàn)樂觀鎖和悲觀鎖的示例代碼

    MyBatis實現(xiàn)樂觀鎖和悲觀鎖的示例代碼

    在數(shù)據(jù)庫操作中,樂觀鎖和悲觀鎖是兩種常見的并發(fā)控制策略,本文主要介紹了MyBatis實現(xiàn)樂觀鎖和悲觀鎖的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Java中Elasticsearch 實現(xiàn)分頁方式(三種方式)

    Java中Elasticsearch 實現(xiàn)分頁方式(三種方式)

    Elasticsearch是用Java語言開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,這篇文章主要介紹了Elasticsearch實現(xiàn)分頁的3種方式,需要的朋友可以參考下
    2022-07-07
  • springboot項目配置context path失效的問題解決

    springboot項目配置context path失效的問題解決

    本文主要介紹了springboot項目配置context path失效的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • java序列化的種類和使用場景詳解

    java序列化的種類和使用場景詳解

    本文詳細介紹了序列化的概念、Java內(nèi)置序列化、自定義序列化、第三方序列化框架(如Kryo、Protobuf)以及在分布式系統(tǒng)和RPC框架中的應(yīng)用,通過比較不同序列化方式的優(yōu)缺點,指導(dǎo)開發(fā)者選擇合適的序列化方案,以確保系統(tǒng)的性能、安全性和可維護性
    2025-01-01
  • Java實現(xiàn)替換集合中的元素的方法詳解

    Java實現(xiàn)替換集合中的元素的方法詳解

    這篇文章主要為大家詳細介紹了Java中實現(xiàn)替換集合中的元素的常見方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02
  • 使用工具類-java精確到小數(shù)點后6位

    使用工具類-java精確到小數(shù)點后6位

    這篇文章主要介紹了使用工具類-java精確到小數(shù)點后6位,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java流程控制之順序結(jié)構(gòu)

    Java流程控制之順序結(jié)構(gòu)

    Java中的流程控制語句可以這樣分類:順序結(jié)構(gòu),選擇結(jié)構(gòu),循環(huán)結(jié)構(gòu)。下面文章我們就來看看來順序結(jié)構(gòu)的詳細介紹,主要以順序結(jié)構(gòu)簡單圖示及詳細解說該內(nèi)容,需要的小伙伴可以參考一下
    2021-12-12
  • Spring Boot異步輸出Logback日志方法詳解

    Spring Boot異步輸出Logback日志方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring Boot異步輸出Logback日志的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java構(gòu)建高效結(jié)果緩存方法示例

    Java構(gòu)建高效結(jié)果緩存方法示例

    這篇文章主要介紹了Java構(gòu)建高效結(jié)果緩存方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Spring Task定時任務(wù)開發(fā)實戰(zhàn)教程

    Spring Task定時任務(wù)開發(fā)實戰(zhàn)教程

    文章介紹了SpringTask,這是Spring框架提供的用于實現(xiàn)定時任務(wù)的模塊,它基于注解和配置方式,簡化了任務(wù)調(diào)度的實現(xiàn),本文結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2026-03-03

最新評論

海城市| 古蔺县| 葫芦岛市| 东山县| 合阳县| 柳江县| 罗甸县| 洱源县| 开平市| 大田县| 逊克县| 清苑县| 金平| 永宁县| 武宣县| 西平县| 洪湖市| 调兵山市| 安康市| 双峰县| 望都县| 乐安县| 徐汇区| 西乌| 盐边县| 娄烦县| 仁寿县| 原平市| 长宁县| 卓资县| 加查县| 鹤岗市| 大渡口区| 布拖县| 宣武区| 大冶市| 龙门县| 福泉市| 勐海县| 鄯善县| 集安市|