我创建了 2 个域类,它们是
职责时髦:
class Duty {
String username
String duty
}
User.groovy:
class User {
String username
}
我已经在 Bootstrap.groovy 中分配了一些用户,我想创建一个职责列表函数来向用户分配职责。因此,在我的职责列表中,它应该包含一个下拉列表,其中包含来自用户域的用户列表。
但是当我在我的 gsp(在职责域中(文件中导入 testApp.User 并创建一个标签库来显示用户列表时,我的编译器显示没有这样的属性。我想征求建议,以最佳方式显示从我的职责域到用户域的用户列表?
下面是其他代码: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" />
我认为您实际上并不需要自定义标签库来实现此目的。你可以用简单的g:select来做到这一点。
<g:select name="user"
from="${User.list()}"/>
你可以在grails docs: https://docs.grails.org/latest/ref/Tags/select.html 中阅读它。
如果您有任何问题,请询问。
如果将模型调整为真正的域模型,则如下所示:
class User {
String username
}
class Duty {
User user
String duty
}
然后 Grails 会自动为您的Duty
类搭建 GSP 视图的脚手架,并包含User
下拉菜单