欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、概要

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

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

二、快速開始

首先,我用的springboot版本是  3.1.5 

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

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

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

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

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

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

此時(shí)如果再進(jìn)行傳入?yún)?shù),如果name為null 就會(huì)報(bào)錯(cuò)。

三、額外補(bǔ)充

在前面我們談到了校驗(yàn)的基本用法,但在開發(fā)中,我需要對(duì)這些異常進(jìn)行統(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()) {
            // 獲取字段錯(cuò)誤列表
            List<FieldError> fieldErrors = result.getFieldErrors();
            // 遍歷字段錯(cuò)誤列表,輸出錯(cuò)誤信息
            for (FieldError error : fieldErrors) {
                String fieldName = error.getField();
                String errorMessage = error.getDefaultMessage();
                System.out.println("字段名:" + fieldName + ",錯(cuò)誤信息:" + errorMessage);
            }
            return ResponseEntity.badRequest().body("參數(shù)校驗(yàn)失敗");
        }
        // 校驗(yàn)通過,處理創(chuàng)建用戶的邏輯
        return ResponseEntity.ok("用戶創(chuàng)建成功");
    }
}

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

相關(guān)文章

最新評(píng)論