Heim  >  Artikel  >  Java  >  So überprüfen Sie das Springboot-Parameterformat

So überprüfen Sie das Springboot-Parameterformat

WBOY
WBOYnach vorne
2023-05-10 21:37:221113Durchsuche

Überprüfung des Springboot-Parameterformats

@Validated@Validated

字面意思校验

So überprüfen Sie das Springboot-Parameterformat

@RequestBody

该注解不用多说,意思是接收为json格式的参数

@Validated

Überprüfung der wörtlichen Bedeutung

So überprüfen Sie das Springboot-Parameterformat

@RequestBody

So überprüfen Sie das Springboot-ParameterformatUnnötig zu erwähnen, dass diese Annotation bedeutet, Parameter im JSON-Format zu empfangen

@Validated

Die Überprüfung der wörtlichen Bedeutung erfordert die Annotation @NotBlank oder @NotNull, um wirksam zu werden.

Geben Sie die Parameter des Anforderungshauptteils ein.

Überprüfung der Springboot-Parameteranmerkung🎜🎜1. Abhängigkeit hinzufügen 🎜
<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
🎜3. Passen Sie eine Ausnahmeklasse an, die 🎜
package com.xl.annotation;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class User {

        @NotNull(message = "ID不能为空")
        @Range(min = 1, max = 100, message = "ID必须在1到100之间")
        private Integer id;

        @NotNull(message = "姓名不能为空")
        @Length(min = 2, max = 6, message = "姓名必须在2到6位之间")
        private String name;

        @NotNull(message = "余额不能为空")
        @DecimalMax(value = "30.50", message = "余额不能超过30.5")
        @DecimalMin(value = "1.50", message = "余额不能低于1.5")
        private BigDecimal amount;

        @NotNull(message = "生日不能为空")
        @Past(message = "生日必须是过去")
        private Date birthday;

        @NotBlank(message = "邮箱不能为空")
        @Email(message = "邮箱格式不正确")
        private String email;

        @NotBlank(message = "手机号不能为空")
        @Pattern(regexp = "^(((13[0-9])|(14[579])|(15([0-3]|[5-9]))|(16[6])|(17[0135678])|(18[0-9])|(19[89]))d{8})$", message = "手机号格式错误")
        private String phone;
}
🎜4 auslöst wird sofort zurückgesendet und die Verifizierung wird nicht fortgesetzt🎜
package com.xl.annotation;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.ValidationException;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;

@RestController
@Validated
@Api(value = "手机验证",description = "手机验证")
public class MobileController {
@ApiOperation("手机验证")
@RequestMapping("/phone")
    public String mobilePattern( Phone phone){
        return "chengg";
    }
    @PostMapping("/getUser")
    @ApiOperation("手机验证12")
    public String getUserStr( @NotNull(message = "name 不能为空")@RequestParam String name,
                              @Max(value = 99, message = "不能大于99岁")@RequestParam Integer age) {
        return "name: " + name + " ,age:" + age;
    }
   /* @PostMapping("/getUser1")
    @ApiOperation("手机验证c")
    public String getUser(@RequestBody @Validated User user, BindingResult bindingResult) {
        validData(bindingResult);
        return "name: " + user.getName() + " ,age:" + user.getAge();
    }*/
    private void validData(BindingResult bindingResult) {
        if (bindingResult.hasErrors()) {
            StringBuffer sb = new StringBuffer();
            for (ObjectError error : bindingResult.getAllErrors()) {
                sb.append(error.getDefaultMessage());
            }
            throw new ValidationException(sb.toString());
        }
    }

    @PostMapping("/test")
    @ApiOperation(value = "测试", notes = "")
    public String  test(@ApiParam(name = "test", value = "参数", required = true) @Validated @RequestBody User test, BindingResult bindingResult) {
        validData(bindingResult);
        if(bindingResult.hasErrors()){
            String errorMsg = bindingResult.getFieldError().getDefaultMessage();
            return errorMsg;
        }
        return "参数验证通过";
    }
}

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie das Springboot-Parameterformat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen