我创建了2个域类
Duty.groovy:
class Duty {
String username
String duty
}
User.groovy:
class User {
String username
}
我已经在Bootstrap.groovy中分配了一些用户,我想创建一个职责列表功能来为用户分配职责。所以在我的职责列表中,它应该包含一个下拉列表,其中包含来自用户域的用户列表。
但是当我在我的gsp(在Duty域)文件中导入testApp.User并创建一个taglib来显示用户列表时,我的编译器显示没有这样的属性。我想问一下建议以最佳方式显示从我的Duty域到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" />
答案 0 :(得分:1)
我认为你真的不需要为此目的定制taglib。 你可以用简单的g来做:选择。
<g:select name="user"
from="${User.list()}"/>
您可以在grails docs中了解它:https://docs.grails.org/latest/ref/Tags/select.html。
请询问您是否有任何问题。
答案 1 :(得分:1)
如果您将模型调整为真正的域模型,那么它看起来像:
class User {
String username
}
class Duty {
User user
String duty
}
然后Grails将使用Duty
- 包含下拉列表自动搭建您的User
课程的GSP视图