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

spring rest控制器中json验证中强制属性的注释

方长卿
2023-03-14

我有一个spring rest服务,它接受Person对象。Person对象具有名称、电话号码和电子邮件。当添加一个人时,电话号码是强制性的。如果存在电话号码属性,它将使用@notnull@notblank@notempty验证是否为空。但是如果属性不存在,验证就不起作用。请建议提供任何验证注释,以检查JSON请求中是否存在该属性。

以下是请求体测试用例

{“name”:“anu”,“phonenumber”:“”,“email”:“test@gmail.com”}//验证有效

{“name”:“anu”,“phonenumber”:null,“email”:“test@gmail.com”}//验证有效

{“name”:“anu”,“email”:“test@gmail.com”}//验证不起作用',需要帮助才能找到批注。

class Person {
 @NotNull
private String name;
  @NotNull(message = "email.empty") 
   @Email(regexp = EMAIL_PATTERN, message = "email.invalid")
private String email;
 @NotNull(message = "phonenumber.empty")
   @Pattern(regexp = PHONE_NUMBER_PATTERN, message = "phonenumber.invalid")
private String phoneNumber;
...
}

请找到我的控制者

@RequestMapping(value = "/createAdminPerson", method = POST, consumes = BusinessPersonConstants.MEDIA_TYPE, produces = "application/json;charset=UTF-8")
    public ResponseEntity<Boolean> createAdminPerson(
            @Validated @RequestBody Person createAdminPerson) {
...
}

我试过“notnull”,“nottempty”,“notblank”。请帮忙

共有1个答案

齐驰
2023-03-14

在controller中,我使用@validated来验证请求正文,当我尝试@valide时,验证工作正常。!!

 类似资料:
  • 我正在用一些电影信息创建这种数据库。 逻辑结构非常简单,一部电影有很多演员,一个演员拍了很多电影,所以这是一种多对多的关系。 我还使用library创建了一个简单的输入,其中写入了标记之类的参与者,并用逗号或空格键(此处是指向文档的链接)将它们分隔开,下面是一个简单的快照,以便更好地理解结果 在创建/存储函数中,我不需要检查是否存在任何关系,因为电影是新的。所以我只需要检查演员是否已经存在于数据库

  • 我们正在尝试做一些具有登录屏幕的网站。但是我们有一个问题。我们的域是本地主机/登录/用户。但是,如果用户进入localhost/Home/Index,他/她无需登录即可访问我们的主站点。因此,我们将 [授权] 写入索引控制器。但我不知道我必须使用什么。我是否必须在我们的项目中使用AuthorizeAttribute? 如何访问LoginController/Authentication函数中的索引

  • 下面的API接受来自客户端的json字符串,并将其映射到电子邮件对象中。如何将请求正文()作为原始字符串获取?(我需要原始字符串和键入版本的参数) PS:这个问题不是重复的:如何在SpringREST控制器中访问普通json主体?

  • 我试图在带有@valid注释的Spring REST控制器中使用Hibernate验证。 但验证没有发生。 下面是Maven构建必须要说的话: java.lang.AssertionError:状态应为:<400>,但实际为:<201> 注意AdminNotFoundException是由其他测试触发的。 但不触发MethodArgumentNotValidException。 下面是contro

  • 我想验证请求参数。我已经浏览了很多博客并回答了问题,我也做了同样的事情。在控制器类上添加了@Validated。 控制器中的方法: 控制器建议 配置: 完成所有这些之后,现在我得到一个404错误。"状态":404,"错误":"未找到","消息":"没有可用的消息"

  • 和标题差不多。我在请求正文中有一个可选对象。但是,如果给定了该对象,则它必须包含几个子属性。 我的OpenAPI组件配置如下所示: 我正在使用express openapi validator来验证这一点。现在,我不明白这是否是express openapi validator包的问题,但可选字段(partner)的必填字段(名称、电话)从未验证过。我可以只提供合作伙伴:{},然后直接插入,或者甚