当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-必需的@Request estBody类字段

谭彦
2023-03-14

我有以下API定义:

@ResponseBody
@PostMapping(path = "/configureSection")
public ResponseEntity<ResultData> configureSegment(@RequestParam() String Section,
                                                       @RequestBody SectionConfig sectionConfig);
public class SegmentConfig {
    @JsonProperty(value = "txConfig", required = true)
    TelemetryConfig telemetryConfig;
    @JsonProperty(value = "rxConfig")
    ExternalConfig externalConfig;
}

我定义了txConfig is required属性(这是类),但当发送空JSON({})时,spring boot仍然运行API,而我希望它返回一个错误,即未设置参数tsConfig。

知道我错过了什么吗?

编辑:使用@Valid和@NotNull解决了它,但是返回的错误信息太多,有办法修复吗?

 {
    "timestamp": 1588753367913,
    "status": 400,
    "error": "Bad Request",
    "exception": "org.springframework.web.bind.MethodArgumentNotValidException",
    "errors": [
        {
            "codes": [
                "NotNull.segmentConfig.telemetryConfig",
                "NotNull.telemetryConfig",
                "NotNull.services.TelemetryConfig",
                "NotNull"
            ],
            "arguments": [
                {
                    "codes": [
                        "segmentConfig.telemetryConfig",
                        "telemetryConfig"
                    ],
                    "arguments": null,
                    "defaultMessage": "telemetryConfig",
                    "code": "telemetryConfig"
                }
            ],
            "defaultMessage": "Please provide a valid txConfig",
            "objectName": "segmentConfig",
            "field": "telemetryConfig",
            "rejectedValue": null,
            "bindingFailure": false,
            "code": "NotNull"
        }
    ],
    "message": "Bad Request",
    "path": "/mypath"
}`

共有1个答案

荀裕
2023-03-14

使用@Valid和@NotNull注释进行如下验证:-

@ResponseBody
    @PostMapping(path = "/configureSection")
    public ResponseEntity<ResultData> configureSegment(@RequestParam() String Section,
                                                       @RequestBody @Valid SectionConfig sectionConfig
                                                        )  {

public class SegmentConfig {

    @JsonProperty(value="txConfig", required = true)
    @NotNull(message="Please provide a valid txConfig")
    TelemetryConfig telemetryConfig;
    @JsonProperty(value="rxConfig")
    ExternalConfig externalConfig;

}
 类似资料:
  • 主要内容:PHP - 必需字段,PHP - 显示错误信息本章节我们将介绍如何设置表单必需字段及错误信息。 PHP - 必需字段 在上一章节我们已经介绍了表的验证规则,我们可以看到"名字", "E-mail", 和 "性别" 字段是必需的,各字段不能为空。 字段 验证规则 名字 必需。 + 只能包含字母和空格 E-mail 必需。 + 必需包含一个有效的电子邮件地址(包含"@"和".") 网址 可选。 如果存在,它必需包含一个有效的URL 备注 可选。多

  • 我正在开发一个文件上传控制器,目前在Postman中测试时出现以下错误。 目前我的控制器非常简单,但首先我需要克服这个问题。 我已经查看了[此处]给出的答案(上传文件springboot必需的请求部分“file”不存在“上传文件springboot必需的请求部分文件不存在”)! 但不幸的是,这里的建议并没有解决我的问题 如果您能帮助解决此错误,我们将不胜感激 这是我的控制器:

  • 另外,如果一个键的值为null,那么它就是被接受的默认值,所以我也不能使用@NotNull。对于eg:[{firstKey:null,secondKey:“value2”,thirKey:“value3”}]是有效的JSON,在反序列化过程中应该毫无异常地进行解析。

  • 问题内容: 因此,我今天更新到Xcode 6 beta 5,并注意到我在Apple类的几乎所有子类中都收到了错误。 错误状态: 类“ x”未实现其超类的必需成员 这是我选择的一个示例,因为该类目前非常轻便,因此易于发布。 所以我的问题是,为什么我会收到此错误,我该如何解决?我没有执行什么?我正在呼叫指定的初始化程序。 问题答案: 来自开发人员论坛上的Apple员工: “向编译器和内置程序声明您确实

  • 我搜索了很多stackoverflow,但没有找到解决问题的方法。当将SpringBoot应用程序作为WAR文件部署到Tomcat 8时,我发现以下错误,在本地它确实可以正常工作 有一个接口 和两个实现类 和二等舱 还有Rest服务 所以我不明白Tomcat怎么找不到像boolean这样的原始数据类型,也不明白为什么我在本地运行它时它能工作。 任何帮助都将不胜感激 问候马蒂亚斯