Just saw this example for grails constraint, But why not just leave blank as constraint, i think both nullable
and blank
will have same function.
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
}
}
By default, all domain class properties are not nullable (i.e. they have an implicit nullable: false
constraint).
Constraints:
blank
- Validates that a String value is not blank. Set to false
if a string value cannot be blank.If the string is null
, it won’t validate with blank: true
. In this case, set the nullable
constraint to true
.
nullable
- Allows a property to be set to null
. By default Grails does not allow null
values for properties. - defaults to false
.
Set to true if the property allows null values.But why not just leave blank as constraint, i think both nullable and blank will have same function
Web requests resulting from form submissions will have blank strings, not null, for input fields that have no value. Keep this in mind when doing mass property binding to properties that are not nullable. The default behavior is such that a blank string will not validate for nullable: false
since the data binder will convert blank
strings to null
. This includes empty strings and blank strings.
A blank string is any string such that the trim()
method returns an empty string. To turn off the conversion of empty strings to null
set the grails.databinding.convertEmptyStringsToNull
property to false
in application.groovy.
Please refer documentation for more details.
Hope this will helps you.