如何在Grails域中将字符串数组用作成员字段?

如何在Grails域中将字符串数组用作成员字段?,grails,Grails,我试图创建一个基本的grails域对象,并为其中一个字段使用字符串数组。然而,即使在运行grailsgenerateviews之后,我仍然看不到编辑该数组的能力。我做错了吗 如果运行“grails安装模板”,则可以编辑src/templates/scaffolding/renderditor.template,这是定义编辑器HTML生成的地方。为字符串[]添加新的“else if”: else if (property.type == String[].class) out <&l

我试图创建一个基本的grails域对象,并为其中一个字段使用字符串数组。然而,即使在运行grailsgenerateviews之后,我仍然看不到编辑该数组的能力。我做错了吗

如果运行“grails安装模板”,则可以编辑src/templates/scaffolding/renderditor.template,这是定义编辑器HTML生成的地方。为字符串[]添加新的“else if”:

else if (property.type == String[].class)
    out << renderStringArrayEditor(domainClass, property)
我不知道要使用什么HTML,但我可能会使用一个textarea并在\n上拆分。无论您决定什么,都需要在控制器方法中将输入参数转换为字符串数组


如果您已经运行了“grails generate all”或“grails generate views”,则需要运行“grails generate views”以使用新编辑器重新生成GSP。

生成数据库表时,GORM会如何处理它?您是否有特别的理由将字符串数组作为域类字段?定义另一个域类(即使其中只有一个字符串字段)并通过hasMany关系将其关联到第一个域类中,对您来说不是更干净吗?注意:如果你有充分的理由,那么我同意伯特的回答。@Simon它会在表中创建一个tinyblob列@Phillpe我想我可以创建一个单独的对象,但这似乎是浪费。字符串[]字段的原因只是描述此对象的功能列表。然后我希望能够在项目符号列表中显示它们。不使用新的域对象和表的一个很好的理由是在检索数据时避免连接。我想我会尝试一下。也许我在这里做了错事,但嘿,我还在学习这个框架。Thx.结果证明我不是这样做的,而是听从了Phillpe的建议。所以我创建了一个单独的对象来表示一个“特征”,并使它工作起来。我真的不想弄乱renderitor.template文件,尽管现在我对Grails如何在后端工作有了更多的了解。
private renderStringArrayEditor(domainClass, property) {
...
}