Grails:如何从我视图中以前创建的对象列表中 select?

Grails: How do i select from a list of previously created objects in my view?

假设我有以下 类:

package test

class Person {
    String name

    static hasMany = [stuff:Stuff]

    static constraints = {
    }
}

和 包测试

class Stuff {
    String stuff

    static belongsTo = Person

    static constraints = {
    }
}

当我为 Person 实现视图时,我希望能够 select 从以前创建的内容列表中。我该如何实现?我看到,当我使用脚手架时,Grails 会生成下拉菜单,我可以在其中执行此操作,但由于我正在设计自己的视图,所以我想了解这是如何完成的。

谢谢。

我很确定您可以在 grails 中使用 generate-all 命令,看看脚手架代码是什么样的: http://docs.grails.org/3.1.1/ref/Command%20Line/generate-all.html

使用此命令应该会生成控制器、视图等,这样您就可以看到脚手架代码是如何工作的。不用担心能否返回到生成的脚手架代码,只需删除由 generate-all 创建的内容,grails 将像现在一样在运行时自动生成它。

开始查看 select 标签的文档可能很好:https://gsp.grails.org/latest/ref/Tags/select.html

一个显示所有 Stuff 列表的简单示例如下所示:

<g:select name="stuffSelect" from="${Stuff.list()}" optionKey="id" optionValue="stuff"/>

这应该会为您提供数据库中所有 Stuff 的下拉列表,向用户显示字符串值,但在提交表单时提交数据库 ID。