【问题标题】:When and why should nullable or/and blank constraints in a grails domain class?grails 域类中何时以及为什么应该为空或/和空白约束?
【发布时间】:2016-12-06 05:58:50
【问题描述】:

我对 grails 有点陌生,我想清楚地了解如何在 grails 域类中使用“可空”和“空白”约束。

一个例子是;

静态约束 = { 名称可为空:真 }

静态约束 = { 名称空白:真 }

静态约束 = { 名称可为空:真,空白:真 }

这些分别是什么意思?如何最好地应用它们?

【问题讨论】:

  • Nullable:将其视为甚至可能不会出现在网页上的字段作为要捕获的输入字段。因此您有 String walletSize 但在捕获 walletSize 的表单输入时不显示它甚至没有注册为正在保存的字段,因此您保存 new Person(name:name).save() 但是在另一个表单上,您可能拥有它并且用户必须输入一些内容,因为如果您希望他们将其留空然后在页面上:当您实际呈现某些内容时为空白让我们说字符串名称表单页面上的名称字段将存在,但当用户实际上可以将其留空时

标签: grails constraints grails-domain-class


【解决方案1】:

默认情况下所有属性都不是空值,因此通常只有在您希望允许空值时使用nullable 约束,即nullable: true

此外,默认情况下,Grails 数据绑定会将空白字符串转换为 null,这实际上意味着默认应用 blank: false(因为空白将转换为 null,并且禁止使用 null)。

在某些理论上的情况下,有必要明确指定blank: false,例如如果在数据绑定后将属性设置为空白字符串。但是,这些情况在实践中不太可能发生,因此忽略一些边缘情况,可以合理地假设默认应用 blank: false, nullable: false

【讨论】:

    【解决方案2】:

    嗯,一开始你应该看看docs
    第二:
    Nullable 已经默认设置为 false。如果你想让某个值可以为空,那么你写name nullable: true
    Nullable 表示在创建对象时,该值可以为空(不输入任何内容)。 空白 - 当您为对象参数输入创建即表单并且您将字段留空时,它将无错误地保存并接受空值。
    长话短说 - 空白是表格接受空的。 Nullable 用于将编码对象保存为无值。
    也可以看this post

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-09
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多