zoukankan      html  css  js  c++  java
  • Kotlin + Spring Boot 请求参数验证

    编写 Web 应用程序的时候,经常要做的事就是要对前端传回的数据进行简单的验证,比如是否非空、字符长度是否满足要求,邮箱格式是否正确等等。在 Spring Boot 中,可以使用 Bean Validation (JSR-303) 技术通过注解的方式来进行参数验证。

    准备 DTO 对象

    data class UserRegisterModel(
            @get: NotEmpty(message = "User name is required")
            @get: Size(message = "Length of user name must be between 6 and 20", min = 6, max = 20)
            var username: String,
    
            @get: NotEmpty(message = "Password is required")
            var password: String,
    
            @get: NotEmpty(message = "Email is required")
            @get: Email
            var email: String)
    

    这里定义了一个十分常见的 DTO 对象,用来承载用户注册时的数据,可能你已经注意到了一些奇怪的地方,在一些注解的前面多了get:这样的东西,是因为 kotlin 会直接在字节码中生成 gettersetter,这样写是显式的是表明这个注解应该作用在getter上。

    准备一个 Controller

    /**
     * 用户注册接口
     */
    @PostMapping
    fun register(@Valid @RequestBody model: UserRegisterModel): Any {
        val user = User(userName = model.username, password = model.password, email = model.email)
        userRepo.save(user)
        return user
    }
    

    只需要在需要验证的参数前加上 @Valid 注解,Spring 就会自动的验证参数的正确性。

    来个测试

    把用户名空着

    image_1bma071s11sr21bec1voa1i49bbl13.png-119kB

    参数完整且正确

    image_1bma04i8p1uj61ofgg3h1l5m10ir9.png-68.5kB

  • 相关阅读:
    bzoj2732[HNOI2012]射箭
    poj1474 Video Surveillance
    bzoj3167[HEOI2013]SAO
    hdu2296 Ring
    bzoj2119 股市的预测
    bzoj2244[SDOI2011]拦截导弹
    bzoj3502[PA2012]Tanie Linie(最大k区间和)
    vijos1859[TJOI2014]电源插排
    比较SQL查询性能 语句
    什么是高内聚低耦合
  • 原文地址:https://www.cnblogs.com/JacZhu/p/7260897.html
Copyright © 2011-2022 走看看