亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

如何在springboot中引入?yún)?shù)校驗

 更新時間:2023年12月09日 10:38:41   作者:grin : (0~.~0)  
一般我們判斷前端傳過來的參數(shù),需要對某些值進行判斷,是否滿足條件,而springboot相關(guān)的參數(shù)校驗注解,可以解決我們這個問題,本文給大家介紹如何在springboot中引入?yún)?shù)校驗,感興趣的朋友一起看看吧

一、概要

一般我們判斷前端傳過來的參數(shù),需要對某些值進行判斷,是否滿足條件。

而springboot相關(guān)的參數(shù)校驗注解,可以解決我們這個問題。

二、快速開始

首先,我用的springboot版本是  3.1.5 

引入?yún)?shù)校驗相關(guān)依賴

<!--1.導(dǎo)入JSR303規(guī)范-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

定義實體類,并在實體類上加入相關(guān)注解。

public class Dept {
    private Integer id; //ID
    @NotNull
    private String name; //部門名稱
    private LocalDateTime createTime; //創(chuàng)建時間
    private LocalDateTime updateTime; //修改時間
}

在controller層  給需要校驗的參數(shù)加上 @ Validated

  @PostMapping("/depts")
    public Result addDept( @RequestBody @Validated Dept dept){
        //這里應(yīng)該判斷是否返回成功
        deptService.addDept(dept);
        return Result.success();
    }

此時如果再進行傳入?yún)?shù),如果name為null 就會報錯。

三、額外補充

在前面我們談到了校驗的基本用法,但在開發(fā)中,我需要對這些異常進行統(tǒng)一處理,并返回符合相應(yīng)規(guī)則的返回值。

因此,需要用到全局異常處理。

讓gpt解答一下:

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<ErrorResponse> handleValidationException(MethodArgumentNotValidException ex) {
        BindingResult bindingResult = ex.getBindingResult();
        List<String> errors = bindingResult.getFieldErrors().stream()
                .map(FieldError::getDefaultMessage)
                .collect(Collectors.toList());
        ErrorResponse response = new ErrorResponse("Validation Failed", errors);
        return ResponseEntity.badRequest().body(response);
    }
}

bindingResult.getAllErrors(); getFieldErrors() 有什么區(qū)別?

@RestController
@RequestMapping("/users")
public class UserController {
    @PostMapping
    public ResponseEntity<String> createUser(@Validated @RequestBody User user, BindingResult result) {
        if (result.hasErrors()) {
            // 獲取字段錯誤列表
            List<FieldError> fieldErrors = result.getFieldErrors();
            // 遍歷字段錯誤列表,輸出錯誤信息
            for (FieldError error : fieldErrors) {
                String fieldName = error.getField();
                String errorMessage = error.getDefaultMessage();
                System.out.println("字段名:" + fieldName + ",錯誤信息:" + errorMessage);
            }
            return ResponseEntity.badRequest().body("參數(shù)校驗失敗");
        }
        // 校驗通過,處理創(chuàng)建用戶的邏輯
        return ResponseEntity.ok("用戶創(chuàng)建成功");
    }
}

到此這篇關(guān)于如何在springboot中引入?yún)?shù)校驗的文章就介紹到這了,更多相關(guān)springboot參數(shù)校驗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論