Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正在验证@RequestBody布尔属性(为真或假)_Java_Spring_Validation_Boolean - Fatal编程技术网

Java 正在验证@RequestBody布尔属性(为真或假)

Java 正在验证@RequestBody布尔属性(为真或假),java,spring,validation,boolean,Java,Spring,Validation,Boolean,所以我读了很多主题,但没有在任何一个主题中找到这些信息。如果有机会我错过了它,如果你能指引我去看它,我将不胜感激:) 我正在使用SringBoot,得到了一个用户模型,它有一个booleanfield-active。我之所以使用布尔值,是因为我了解到,使用布尔值进行3次状态检查是一种不好的做法 问题是,当我从Postman发送RequestBody时,如果我将字段保持为空,它将默认为false。我读过一些关于@NotNull注释和@Validation以及@Valid检查Body的内容,但这不是

所以我读了很多主题,但没有在任何一个主题中找到这些信息。如果有机会我错过了它,如果你能指引我去看它,我将不胜感激:)

我正在使用SringBoot,得到了一个用户模型,它有一个
boolean
field-active。我之所以使用
布尔值
,是因为我了解到,使用
布尔值
进行3次状态检查是一种不好的做法

问题是,当我从Postman发送RequestBody时,如果我将字段保持为空,它将默认为false。我读过一些关于
@NotNull
注释和
@Validation
以及
@Valid
检查Body的内容,但这不是布尔值的选项

主要问题:是否可以对布尔属性执行类似(
@AssertTrue
@AssertFalse
)的操作?如果不是,那么如何确保该属性在RequestBody中不为空(不使用
布尔值

编辑:我只是认为这个问题可能不需要代码,因为它非常简单,给你,控制器方法:

@PutMapping()
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<User> modifyUser(@RequestBody User userBody)
        throws NotFoundException {

布尔数据类型是二进制表示(true/false)。Null值既不是true也不是false

默认情况下,布尔值为false。 参考文献

如果要基于发送的用户数据执行一些验证,则必须将数据类型创建为包装布尔值。 这将取决于你将要解释的情景

  • 如果为空,您将计算一些值并设置字段吗
  • 是否要在数据库中将该值存储为null

  • 但理想情况下,如果一个字段是布尔值,则该值应为true或false。

    因此在最终结果中,我仍然必须使用布尔值,因此我能够向活动字段添加@NotNull注释。遗憾的是,仍然无法找到关于如何使用布尔运算的答案。。。谢谢你的回复

    也许你也应该分享你的代码,这样我们可以更好更容易地帮助你1。如果为null,我希望将其设置为原样(编辑前的旧值),但不将其设置为false(就像现在一样)2。数据库中的值不能为空。我需要用户是活跃的或不活跃的,完美的做法是只限制没有该属性的RequestBody
        @Column(name = "ACTIVE")
    private boolean active;