Grails:如何从视图中先前创建的对象列表中进行选择?

时间:2018-10-10 19:30:38

标签: grails groovy gsp

假设我有以下课程:

def create_dictionary(file):
newlist = []
dict = {}
file = open("hobbies_database.txt", "r")
hobbies = file.readlines()
for rows in hobbies:
    rows1 = rows.split(":")
    k = rows1[0] # nimi
    v = (rows1[1]).rstrip("\n") # hobi
    dict = {k: v}
    for k, v in dict.items():
        if v in dict[k]:

和     包装测试

package test

class Person {
    String name

    static hasMany = [stuff:Stuff]

    static constraints = {
    }
}

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

谢谢。

2 个答案:

答案 0 :(得分:1)

开始在此处查看有关select标签的文档可能是一件好事:https://gsp.grails.org/latest/ref/Tags/select.html

一个简单的示例来显示所有内容的列表,如下所示:

viewWillDisappear

这应该为您提供数据库中所有<g:select name="stuffSelect" from="${Stuff.list()}" optionKey="id" optionValue="stuff"/> 的下拉菜单,向用户显示String值,但在提交表单时提交DB ID。

答案 1 :(得分:0)

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

使用此命令应生成Controllers,views等,以便您可以查看支架代码的工作方式。不必担心能够返回生成的脚手架代码,只需删除generate-all创建的内容,grails就会像现在一样在运行时自动生成它。