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

2024-03-25

我正在尝试验证由 @Validated 注释的 @RestController 中由 @Valid 注释注释的简单请求正文。验证对请求中的原始变量(以下示例中的年龄)正常工作,但对 pojo 请求主体无效。 @Valid 注释对请求主体 Person 类没有影响(即控制器接受空白姓名和 18 岁以下年龄)。

人物类别:

import javax.validation.constraints.Min
import javax.validation.constraints.NotBlank

class Person (

    @NotBlank
    val name : String,

    @Min(18)
    val age : Int
)

控制器类:

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 注释来自以下依赖项:

    implementation("org.springframework.boot:spring-boot-starter-validation:2.3.0.RELEASE")

如何使 @Valid 在 @Validated 控制器中的 Person 请求主体上工作?


不要将 Person 标记为 Spring @Component。

实现字段验证的正确方法是将@field 添加到您的属性中。 示例代码:

class SomeRequest(
    @field:NotBlank val name: String
)

发生这种情况是因为 Spring Boot 需要将此注释应用于字段。 Kotlin 默认将它们应用于构造函数参数。看注释使用站点目标 https://kotlinlang.org/docs/annotations.html#annotation-use-site-targets关于 Kotlin 文档。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

控制器方法中 requestBody 上的 Spring boot @Valid 不起作用 的相关文章

  • 如何将列表从控制器发送到百里香

    我需要将列表中存在的数据从我的 spring 控制器发送到 thymeleaf html 我如何发送数据 收到后如何迭代百里香中的数据 将您的清单放入您的ModelMap or ModelAndView对象然后使用遍历它th each在你的
  • 无法使用 Mockito 模拟 Spring-Data-JPA 存储库

    我正在尝试为服务编写测试 但我没有成功地嘲笑repository依赖性 其他非存储库依赖项已成功模拟 存储库实例始终是实际实现 而不是模拟实例 我正在使用 Spring Boot 和 Spring Data JPA 来构建应用程序 Mock
  • Spring MVC - 为什么部署上下文时出现 NoSuchMethodError 异常?

    尽管这个项目已经为我工作了一段时间 但现在当我尝试在 Tomcat 中部署应用程序上下文时遇到异常 Servlet testapp threw load exception java lang NoSuchMethodError org s
  • Spring 中 JavaConfig 相对于 XML 配置的优势?

    早些时候 配置曾经在代码中硬编码 后来它被外部化到 property 文件 为了避免硬编码值 避免为了更改配置而更改代码 等等 然后它转移到 XML 为了为了更加标准化 无错误等 现在 在阅读 Spring 3 中的 Configurati
  • Spring Boot,使用 EhCache 进行缓存

    我需要在我的应用程序中缓存一些数据 我正在考虑使用 Ehcache 我有几个问题 Ehcache需要另外一台服务器吗 我需要其他客户端来使用 Ehcache 吗 Ehcache 如何与多个实例配合使用 是否有可能使用 Ehcache 创建类
  • PHP 中的 Javascript“unes​​cape”

    我的图像主机有一个 Google Chrome 扩展程序 它会向我的网站发送一个 URL 该网址得到encoded通过 JavaScript 的escape method 编码的 URLescape看起来像这样 http 253A 4 bp
  • Kotlin 1.6.0 的 proguard / R8 删除了数据类元数据

    我有一个包含一些数据类的包 我尝试使用 Kotlin 反射在运行时访问构造函数clazz primaryConstructor 一切都按预期工作 但是当我启用 R8 时 数据类元数据被删除 例如当我检查是否KClass isData它返回
  • Thymeleaf:传递 javascript 参数

    我有一个基本的 SpringBoot 应用程序 使用 Spring Initializer 嵌入式 Tomcat Thymeleaf 模板引擎 并打包为可执行 JAR 文件 我想将 POJO 的属性传递给 javascript 函数 tr
  • 需要有关带有正文参数的 RestTemplate Post 请求的帮助吗?

    我有一个rest api url 并通过Rest Client restclient ui 2 4 jar with dependencies 提交了与带有正文 用户名 密码 其他参数 的POST请求相同的内容 并且它工作得很好 没有任何问
  • Rails 3 UJS 干客户端 + 服务器端表单验证

    使用 jQuery 进行表单验证就像向字段添加类名一样简单 使用 Rails 进行表单验证就像将条件放入控制器 和 或模型 中一样简单 我认为应该有一种方法可以编写一次验证并将它们应用到客户端和服务器端 我一直热衷于编写自己的 javasc
  • CSS 未在 Spring Boot 中加载

    我是 spring 框架工作和 spring boot 的新手 我正在尝试使用 CSS javascript js 添加静态 html 文件 文件结构是 我的 html 文件头看起来像这样
  • 电话号码的正则表达式,不允许全零

    需要您的正则表达式帮助 我当前的正则表达式是 d 8 最小长度为 8 不允许包含字母 特殊字符和空格 我还想禁止全零 如 00000000 Thanks 该模式应该可以满足您的需求 0 d 8 The 0 部分是负前瞻 将阻止仅输入零 Ex
  • 无法启动组件 [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/LabWebServletHibernate]]

    当使用 eclipse neon 1 在 tomcat 8 上运行应用程序时 我收到此错误 它使用 spring 4 3 3 hibernate 5 2 4 和 maven 嚴重 A child container failed durin
  • Spring @Value 添加验证小于

    我使用以下属性值注入 我如何向此操作添加小于验证 我的意思是我想设置一个验证user maxpassiveday可以说 财产价值不得低于 100 Value user maxpassiveday int maxpassiveday 使用Sp
  • 用于测试的嵌入式 H2 数据库的 Spring 配置

    使用 Spring 进行集成测试的配置是什么样的 嵌入式 h2 数据源 http www h2database com html main html以及可选的 JUnit 我第一次尝试单连接数据源 http static springsou
  • 如何在 Spring Boot 中创建 Apache POI Excel 视图配置

    当我想使用 Spring Boot Web 将数据导出到 Excel 时遇到问题 我使用 Thymeleaf 作为模板引擎 由 Spring Boot 自动配置 但是当我在附加配置中添加 XmlViewResolver 时 由 XmlVie
  • 使用 spring-data-cassandra 的用户定义类型

    我希望创建如下模型 如何在 spring data cassandra 中使用用户定义的类型 email email protected cdn cgi l email protection name fname First lname L
  • Spring Boot:在映射级别指定端口

    Spring Boot 我希望实现以下目标 一些 URL 路径映射到一个端口 一些映射到另一个端口 换句话说 我想要这样的东西 public class Controller1 RequestMapping value path1 port
  • WebSocketStompClient 将无法连接到 SockJS 端点

    我正在尝试新的 从版本 4 2 开始 java STOMP 客户端支持 我的出发点是入门指南 使用 WebSocket 构建交互式 Web 应用程序 http spring io guides gs messaging stomp webs
  • RecyclerView 适配器的 Kotlin 泛型

    我正在尝试编写一个通用的 recyclerview 适配器 我找到了几个例子 然而 仍然无法弄清楚如何实现通用适配器 我写的代码是 open abstract class BaseAdapter

随机推荐

  • BertTokenizer.from_pretrained 错误并显示“连接错误”

    我正在尝试从 Huggingface 下载 BERT 的分词器 我正在执行 tokenizer BertTokenizer from pretrained bert base uncased Error
  • Python 字典键中的空格

    我知道 Python 字典键中可以有空格 但这被认为是糟糕的编程吗 我在 PEP 中找不到任何与此相关的内容 编辑以澄清 在我正在做的一个项目中 我正在研究解析 Apache 的记分板输出的东西mod status 请参阅下面的示例输出 我
  • 在 ASP.NET MVC3 中正确使用 TempData?

    我有一个 ASP NET MVC3 应用程序 其中我的操作生成了一个 id 列表 我希望将其提供给后续 AJAX 请求 这样我就可以在后台运行一个很长的进程并对其进行轮询 id 列表是这个长时间运行的进程的必要输入 我不想将它们作为参数传递
  • python正则表达式中匹配unicode字符

    我已经阅读了 Stackoverflow 上的其他问题 但仍然没有更进一步 抱歉 如果这个问题已经得到解答 但我没有得到任何建议可以工作 gt gt gt import re gt gt gt m re match r by tag P
  • 具有 VCL 样式的默认按钮

    我对 Default True 的 TButtons 的样式感到困惑 问题是 至少对于某些样式 例如 Luna 最近聚焦的按钮突出显示为橙色 这与默认按钮使用的样式相同 因此 我担心用户可能会对哪个按钮是默认按钮感到困惑 或者至少会认为两个
  • 多次渲染一个组件 React.js

    这是一个简单计数器的代码 但是 当我渲染视图时 我没有得到任何输出 请告诉我代码有什么问题 按下按钮 计数器就会递增并呈现在屏幕上 var Title React createClass getInitialState function r
  • Java utils 类、静态方法与注入 utils 类

    你们如何创建 utils 类 有标准的方法吗 就像标题所说 你可以有这样的东西 public class Utils public static method1 public static method2 并通过调用来使用它Utils me
  • “未定义不是对象” this.state 未绑定

    我的反应本机组件 我通过创建React createClass 似乎没有约束力this关键字正确 导致我无法访问this state 这是我得到的错误 代码如下 我没有看到与网站上的示例有任何本质上的不同 所以我无法弄清楚我做错了什么 我怎
  • 如何在两列上指定 OrderBy 子句

    我们希望在 Seam EntityQuery 接口以及 JPA 模型中对 2 列进行排序 我们如何做到这一点 Entity public class A OrderBy should this be hardcoded here is it
  • 如何让JHC与android ndk合作?

    JHC 是一个 Haskell 编译器 它可移植生成 C 代码 然后调用编译器后端来生成可执行文件 我需要转储 JHC 运行时系统的头文件和库 以便 android ndk 可以使用它来编译生成的 C 代码 或者 我需要弄清楚如何将 and
  • iOS到Mac OS X【核心】蓝牙数据传输

    我的目标是在运行 iOS 的设备 to a 运行 Mac OS X 的设备 通过蓝牙 我知道我也许可以使用 CoreBluetooth 来实现此目的 但我不明白如何使用 因为我没有看到在iOS设备并将其作为可用服务进行广播运行 Mac OS
  • 在 dplyr mutate 或 summarize 中有效分配具有多个输出的函数

    我注意到这里有很多使用的例子dplyr mutate与返回多个输出的函数结合以创建多个列 例如 tmp lt mtcars gt group by cyl gt summarise min summary mpg 1 median summ
  • 在 R 中的值更改之前删除特定值的行

    我有一个如下所示的数据框 dat lt data frame Target c rep 01 times 8 rep 02 times 5 rep 03 times 4 targ2clicks c 1 1 1 1 0 0 0 1 1 0 0
  • 如何在 Java 中将 RGB 值添加到 setColor() 中?

    如何向我的 Java 添加 红 绿 蓝 值 例如 setColor 255 0 0 上下文看起来像这样 public void render BufferStrategy bs getBufferStrategy if bs null cr
  • 正则表达式可以匹配两个正则表达式之间的交集吗?

    给定几个正则表达式 我们能写出一个等于它们交集的正则表达式吗 例如 给定两个正则表达式c a z a z and a z aeiou t 它们的交集包含cat and cut甚至可能更多 我们如何为它们的交集编写正则表达式 Thanks 正
  • Symfony 2 如何从另一个包导入 LESS 文件

    LESS 具有 import 其他 LESS 文件的能力 这个问题旨在找到一种解决方案 从 Symfony 项目中的另一个 Bundle 导入 LESS 文件中的 LESS 文件 我正在开发一个 Symfony2 项目 使用 LESS 和
  • jquery ui 对话框作为确认

    我正在尝试使用 jquery 对话框复制 javascript 的 确认 框 这是我的代码 function customConfirm customMessage popUp html customMessage popUp dialog
  • 多语言网站 SEO:无需更改 URL 即可获得特定于语言的结果?

    我有一个有两种语言的网站 英语和瑞典语 我想要的是 如果有人用谷歌搜索瑞典的网站 它应该显示瑞典语的结果 也就是说 我希望瑞典的 Google google se 抓取该网站的瑞典语版本 对于任何其他地方 我希望抓取英文版本 我读了以下内容
  • 如何在 Vim 中打开之前打开的缓冲区?

    如何在 Vim 中打开之前打开的缓冲区 我有 4 个缓冲区 例如 buf1 到 buf4 目前我已经打开 buf1 然后打开 buf3 执行 b3 现在 如何返回 buf1 之前打开的缓冲区 而不执行 b1 Ctrl P will go t
  • 控制器方法中 requestBody 上的 Spring boot @Valid 不起作用

    我正在尝试验证由 Validated 注释的 RestController 中由 Valid 注释注释的简单请求正文 验证对请求中的原始变量 以下示例中的年龄 正常工作 但对 pojo 请求主体无效 Valid 注释对请求主体 Person