亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Spring boot怎么進行參數校驗

發布時間:2021-05-18 17:33:27 來源:億速云 閱讀:136 作者:Leah 欄目:編程語言

本篇文章為大家展示了使用Spring boot怎么進行參數校驗,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

使用注解進行校驗

先定義一個form的封裝對象

class RequestForm {
  @Size(min = 1, max = 5)
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

其中name這個字段用Size注解限制長度1到5。Size是javax.validation包中的constraint注解。

 在使用時用@Valid注解表示要校驗這個bean。

  @ResponseBody
  @GetMapping(value = "bean")
  public String validate(@Valid RequestForm request) {
    System.out.println(request.getName());
    return "OK";
  }

自定義注解

如果內置的注解不夠用,可以自定義注解。

 比如先定義一個注解NameConstraint,限制name字段只能從特定數據中選取。

@Target({ ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = NameConstraintValidator.class)
@interface NameConstraint {
  String[] allowedValues();
  Class<?>[] groups() default {};
  Class<? extends Payload>[] payload() default {};
  String message();
}

其中allowedValues表示合法的取值范圍,message是校驗失敗的顯示信息。

message、groups、payload是hibernate validator要求的字段,想了解的請看官方文檔

 再定義一個validator做真正的校驗

class NameConstraintValidator implements ConstraintValidator<NameConstraint, String> {
  private String[] validValues;
  @Override
  public void initialize(NameConstraint constraintAnnotation) {
    validValues = constraintAnnotation.allowedValues();
  }
  @Override
  public boolean isValid(String value, ConstraintValidatorContext context) {
    for (String s : this.validValues) {
      if (s.equals(value)) {
        return true;
      }
    }
    return false;
  }
}

在form bean中按如下方式使用

class RequestFormWithCustomConstraint {
  @NameConstraint(allowedValues = { "bar", "foo" }, message = "只允許bar,foo")
  private String name;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

直接校驗參數

只有一個name字段,不想封裝一個對象怎么辦?可以直接校驗該參數

@Controller
@Validated
@RequestMapping(value = "validator")
public class ParameterValidatorDemoController {
  @ResponseBody
  @GetMapping(value = "simple")
  public String validateParameter(@Size(min = 1, max = 5) String name) {
    System.out.println(name);
    return "OK";
  }
}

springboot是什么

springboot一種全新的編程規范,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程,SpringBoot也是一個服務于框架的框架,服務范圍是簡化配置文件。

上述內容就是使用Spring boot怎么進行參數校驗,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿城市| 连平县| 庆云县| 巨鹿县| 五华县| 永登县| 安阳市| 洛南县| 延津县| 福贡县| 洮南市| 金堂县| 嘉善县| 弥渡县| 叙永县| 金平| 蚌埠市| 友谊县| 彩票| 固始县| 通山县| 临夏县| 衡阳市| 手机| 财经| 二手房| 定安县| 镶黄旗| 山阴县| 罗田县| 文安县| 九龙县| 巫山县| 博客| 尼勒克县| 福州市| 高平市| 道孚县| 梅河口市| 余江县| 枣庄市|