首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >requestBody上的Spring boot @Valid in控制器方法不起作用

requestBody上的Spring boot @Valid in控制器方法不起作用
EN

Stack Overflow用户
提问于 2020-05-25 05:24:14
回答 6查看 8.9K关注 0票数 7

我正在尝试验证一个由@Valid注释的@RestController中的@Valid注释注释的简单请求正文。验证在请求中的原语变量上工作正常(在下面的例子中在年龄上),但在pojo请求正文上不起作用。@Valid注释对请求body Person类没有影响(即控制器接受空白姓名和年龄在18岁以下)。

Person类:

代码语言:javascript
运行
复制
import javax.validation.constraints.Min
import javax.validation.constraints.NotBlank

class Person (

    @NotBlank
    val name : String,

    @Min(18)
    val age : Int
)

控制器类:

代码语言:javascript
运行
复制
import org.springframework.validation.annotation.Validated
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RestController
import javax.validation.Valid

@RestController
@Validated
class HomeController {

    @GetMapping("/{age}")
    fun verifyAge(@PathVariable("age") @Min(18) age:Int): String {
        return "Eligible age."
    }

    @PostMapping
    fun personValidation(@Valid @RequestBody person : Person) : String {
        return "No validation error"
    }
}

@NotBlank、@Min和@Valid批注来自以下依赖项:

代码语言:javascript
运行
复制
    implementation("org.springframework.boot:spring-boot-starter-validation:2.3.0.RELEASE")

如何在@Validated控制器中让@Valid working on Person请求正文?

EN

Stack Overflow用户

发布于 2020-05-25 14:45:55

您可以尝试此选项。

请使用@PostMapping("/validateBody")这样的URL映射@PostMapping,然后尝试使用其URL。就像在https://reflectoring.io/bean-validation-with-spring-boot/上做的那样

票数 0
EN
查看全部 6 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61992596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档