Grails 不确定是否存在空白约束或动态脚手架问题

Grails 不确定是否存在空白约束或动态脚手架问题,grails,constraints,scaffolding,Grails,Constraints,Scaffolding,我有一个简单的域类,它有一些属性。我想让其中一个是空的。我在约束块中使用blank:true 在Config.groovy中,我将ConvertEmptyStringsToull设置为false。我相信将保持我的表单提交从空白字段设置为NULL和提交失败的隐式可空检查。< /P> 我在控制器中使用动态脚手架 我通过BootStrap.groovy添加了一些数据。一条记录有一个空白字段,它会像我所期望的那样保存 我接着启动我的应用程序,列表显示了我的自举记录,包括带有空白字段的记录。 当我尝试使用

我有一个简单的域类,它有一些属性。我想让其中一个是空的。我在约束块中使用blank:true

在Config.groovy中,我将ConvertEmptyStringsToull设置为false。我相信将保持我的表单提交从空白字段设置为NULL和提交失败的隐式可空检查。< /P> 我在控制器中使用动态脚手架

我通过BootStrap.groovy添加了一些数据。一条记录有一个空白字段,它会像我所期望的那样保存

我接着启动我的应用程序,列表显示了我的自举记录,包括带有空白字段的记录。

当我尝试使用接受空白的属性创建新记录时,我得到一个“请填写此字段”验证错误。我认为这项记录应该可以保存下来

我不确定这是否是脚手架视图的问题,是空白约束的问题,还是我不理解这些特征应该如何工作。< /P>


任何帮助都将不胜感激。

我猜您在Config.groovy中的条目是:

grails.databinding.convertEmptyStringsToNull = false
脚手架插件不考虑此配置选项,脚手架视图_form.gsp包含必需的=“属性”

<g:textField name="name" required="" value="${fooInstance?.name}"/>
导致

<g:textField name="name" value="${fooInstance?.name}"/>


因此,浏览器允许您输入一个空值。

您在my Config.groovy中的输入是正确的。问题是我使用的是动态脚手架,而不是静态脚手架,所以我没有编辑的视图。对我来说,好像是一个有动态脚手架的bug。它应该检查Config.groovy中的convertEmptyStringsToull=false,然后创建表单。由于您使用的是动态支架,并且没有可编辑的视图,请尝试在域类中的属性中添加nullable:true,然后再次执行动态支架。根据您的评论,我倾向于创建一个新的JIRA缺陷来对抗动态脚手架,然后转向静态脚手架。你试过我的建议了吗。这有帮助吗。请在创建JIRA之前尝试一下。是的,我尝试过你的建议。成功了。但是,仍然存在一个缺陷,因为我不想要空值,我想要允许空白。你不想要空值,你想要允许空白值,这意味着你必须保留一些默认值。
<g:textField name="name" value="${fooInstance?.name}"/>