刚刚看到了grails约束的示例,但是为什么不将空白作为约束,我认为nullableblank将具有相同的功能。


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。



  • 对于没有值的输入字段,表单提交产生的​​Web请求将使用空白字符串,而不是null 。将质量属性绑定(bind)到不可为空的属性时,请记住这一点。默认行为是空白字符串不会针对nullable: false进行验证,因为数据绑定(bind)器会将blank字符串转换为null。这包括空字符串和空字符串。

    空字符串是指使trim()方法返回空字符串的任何字符串。要关闭将空字符串转换为null的过程,请在application.groovy中将grails.databinding.convertEmptyStringsToNull属性设置为false

    有关更多详细信息,请参考documentation

    希望这对您有帮助。

    08-04 08:00
    查看更多