Spring MVC @NotBlank不会在空字符串或null上触发

ekqde3dh  于 6个月前  发布在  Spring
关注(0)|答案(1)|浏览(106)

我有Spring @RestController控制器,方法:

@PostMapping(path = [CONTROLLER_PATH])
fun post(
    @RequestBody(required = true) @Valid sendSmsTask: Request,
) : String {
    return UUID.randomUUID().toString()
}

字符串
请求模型:

import jakarta.validation.constraints.NotBlank

data class Request (
    @NotBlank
    val receiverNumberPhone: String?,

    @NotBlank
    val text: String?
)


然后我尝试发送无效的请求体:

{
    "receiverNumberPhone": "",
    "text": null
}


预期:返回422,有2个验证错误
实际:返回200和UUID。
为什么@NotEmpty不会触发验证错误?
来自build.gradle.kts的命令:

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-mail")
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-validation")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

4dbbbstv

4dbbbstv1#

在数据类中,验证注解必须使用@field:前缀编写:

import jakarta.validation.constraints.NotBlank

data class Request (
    @field:NotBlank
    val receiverNumberPhone: String?,

    @field:NotBlank
    val text: String?
)

字符串

相关问题