繁体   English   中英

Grails从一个域读取到另一个域

[英]Grails read from one domain to another domain

我创建了2个域类

Duty.groovy:

    class Duty {
               String username
               String duty
    }

User.groovy:

    class User {
               String username
    }

我已经在Bootstrap.groovy中分配了一些用户,我想创建一个职责列表函数来为用户分配职责。 因此,在我的职责列表中,它应该包含一个下拉列表,其中包含来自“用户”域的用户列表。

但是,当我在gsp(在Duty域中)文件中导入testApp.User并创建一个taglib来显示用户列表时,我的编译器显示没有这样的属性。 我想问一些建议,以最佳方式显示从我的责任域到用户域的用户列表?

这是其他代码:SelectUserTagLib.groovy

    import HR_System.User
    def userInstance = new User()
    def displayType = { attrs,body -> 
    def name = attrs.name 

    out << "<select id=\"${name}\" name=\"${name}\" require=\"\" >"
    out << "<g:each in='${userInstanceList}'' status='i' var='userInstance'>"
    out << "<option value=\"${name}\">${fieldValue(bean: userInstance, field: "username")}</option>"
    out << "</g:each>"
    out << "</select>"
}

_form.gsp:

    <name:displayType name="username" />

我认为您实际上不需要为此目的使用自定义taglib。 您可以使用简单的g:select来实现。

<g:select name="user"
          from="${User.list()}"/>

您可以在grails文档中阅读它: https : //docs.grails.org/latest/ref/Tags/select.html

请询问您是否有任何疑问。

如果您将模型调整为真正的域模型,则它看起来像:

    class User {
               String username
    }

    class Duty {
               User user
               String duty
    }

那么Grails会自动使用您的“ User下拉列表为您的Duty类提供GSP视图

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM