刚刚看到这个 grails 约束的例子,但是为什么不把空白作为约束,我认为这两个 nullable
和 blank
将具有相同的功能。
class User {
String firstName
String lastName
String passwordHash
static constraints = {
firstName blank: false, nullable: false
lastName blank: false, nullable: false
passwordHash blank: false, nullable: false
}
}
最佳答案
默认情况下,所有域类属性都不能为空(即它们具有隐式 nullable: false
约束)。
约束:
blank
- 验证字符串值不为空。设置为 false
如果字符串值不能为空。 如果字符串是
null
, 它不会通过 blank: true
进行验证.在这种情况下,设置 nullable
对 true
的约束.nullable
- 允许将属性设置为 null
.默认情况下,Grails 不允许 null
属性的值。 - 默认为 false
.如果属性允许空值,则设置为 true。
But why not just leave blank as constraint, i think both nullable and blank will have same function
表单提交产生的 Web 请求将具有 空字符串,不为空 , 对于没有值的输入字段。在对不可为空的属性进行批量属性绑定(bind)时,请记住这一点。默认行为是空白字符串不会验证
nullable: false
。因为数据绑定(bind)器将转换 blank
字符串到 null
.这包括空字符串和空字符串。空白字符串是任何字符串,如
trim()
方法返回一个空字符串。关闭空字符串到 null
的转换设置grails.databinding.convertEmptyStringsToNull
属性(property)给 false
在 application.groovy 中。请引用 documentation更多细节。
希望这会帮助你。
关于grails - grails域类约束中的空白和可为空有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405355/