Playframework 什么';@Constraints.Required和@Formats.NonEmpty之间的区别是什么?
在游戏中创建模型时!2.x,您可以使用Playframework 什么';@Constraints.Required和@Formats.NonEmpty之间的区别是什么?,playframework,playframework-2.0,Playframework,Playframework 2.0,在游戏中创建模型时!2.x,您可以使用@约束。必需的和@格式。非空的。据我所知,它们是相同的,但它们都在同一领域使用,所以我可能错了。但是为什么呢 public class User extends Model { @Id @Constraints.Required @Formats.NonEmpty public String email; ... } @Constraints.Required检查属性是否已发送,以便只发送空的空格字符,它将有效
@约束。必需的
和@格式。非空的
。据我所知,它们是相同的,但它们都在同一领域使用,所以我可能错了。但是为什么呢
public class User extends Model {
@Id
@Constraints.Required
@Formats.NonEmpty
public String email;
...
}
检查属性是否已发送,以便只发送空的@Constraints.Required
字符,它将有效空格
另外检查修剪值是否为空@forms.NonEmpty
是一个验证,它确保值不为null@Constraints.Required
是一个格式化程序,它修剪输入,如果字符串的长度为0(@Formats.NonEmpty
),则返回null。因此,该值被设置为null。之后,所需的注释就可以完成这项工作text.trim().isEmpty()
因此,两者都使用通常很有用,但并非在所有情况下都有用。
@格式。非空
首先转换结果@约束。必选
检查转换后的约束
例如:
字符串为
“
将通过@约束。必需的
,因此,添加@格式。非空的
将首先将”
修剪为null
和@约束。必需的
可能引发错误 @格式也是如此。非空的
包含@约束。必需的
?那么为什么要同时使用这两种格式呢?不太确定,但可能是@约束。Required
检查变量是否可用,@Formats
只检查值,因此,如果您尝试仅使用@Formats
进行验证,则在未发送变量时,很可能会获得Null异常。(注意:我没有检查这个假设,只是在默认情况下使用了两者)