最新国产好看的视频,伊人天堂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失效的問題解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • java序列化的種類和使用場景詳解

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

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

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

    這篇文章主要為大家詳細介紹了Java中實現(xiàn)替換集合中的元素的常見方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    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)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring Boot具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Java構(gòu)建高效結(jié)果緩存方法示例

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

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

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

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

最新評論

钦州市| 临猗县| 砀山县| 文昌市| 南平市| 旬阳县| 怀仁县| 阿荣旗| 新营市| 格尔木市| 天祝| 灌南县| 大同县| 阿瓦提县| 罗田县| 高要市| 拜泉县| 澳门| 安岳县| 介休市| 商河县| 大安市| 崇左市| 永德县| 依安县| 敖汉旗| 南木林县| 内乡县| 类乌齐县| 红原县| 万安县| 香港| 庄河市| 买车| 阳朔县| 修文县| 昆山市| 遵化市| 江陵县| 绩溪县| 凯里市|