Grails SpringSecurity属性的下拉/选择列表?
我目前正在从事一个Grails项目,希望了解显示Spring安全域模型中对象选择列表的最佳方式: 我知道如何创建选择列表,但我只想找出grails中使用该域中的对象填充列表的最佳方法。我想调用类似“user.list(params)”的函数,然后将其传递给视图,这样我就可以访问该域中定义的对象,但我不能100%确定这是最好的方法还是可以这样做 提前谢谢 编辑 我在控制器中设置了以下自定义模型:Grails SpringSecurity属性的下拉/选择列表?,grails,spring-security,selectlist,domain-model,Grails,Spring Security,Selectlist,Domain Model,我目前正在从事一个Grails项目,希望了解显示Spring安全域模型中对象选择列表的最佳方式: 我知道如何创建选择列表,但我只想找出grails中使用该域中的对象填充列表的最佳方法。我想调用类似“user.list(params)”的函数,然后将其传递给视图,这样我就可以访问该域中定义的对象,但我不能100%确定这是最好的方法还是可以这样做 提前谢谢 编辑 我在控制器中设置了以下自定义模型: class UserModel { String username
class UserModel {
String username
String firstName
String lastName
def email = User.email.list()
String[] emails = email
static constraints = {
username blank: false
firstName blank: false
lastName blank: false
}
}
然后,当初始化此视图的索引页时,我将其传递给它:
[model: new UserModel(copy)]
最后,我认为:
<g:select name="emails" from="${model.emails}"
有人能帮忙吗??谢谢你的方法看起来绝对正确。在控制器操作中,填充模型:
def listUsers = {
[ 'users': Users.list( params ) ]
}
在视图中,使用模型填充列表框:
<g:select name="users" from="${ users }" />
你的问题看起来很简单,所以我希望,我已经正确地理解了问题背后的想法:-)我一直在努力解决这个问题,并为我遇到的问题实施了解决方案,一切都很好。以下是我在控制器中为相关视图准备的内容:
def index = {
[userList: Users(), command: new RegisterCommand(copy)]
}
protected List Users() {
lookupUserClass().list()
}
列表用户从扩展类调用另一个函数,如下所示:
protected Class<?> lookupUserClass() {
grailsApplication.getDomainClass(lookupUserClassName()).clazz
}
受保护类lookupUserClass(){
grailsApplication.getDomainClass(lookupUserClassName()).clazz
}
然后,此视图呈现我要在选择列表中显示的项目列表:
<g:select name="emails" from="${userList.emails}" />
如果要查找唯一值,也可以执行此操作:
<g:select name="emails" from="${userList.emails.unique()}" />
感谢我已经有一个模型被传递到视图中,我假设不可能将另一个模型传递到视图中,并且只有一个我没有的映射模型。我需要将用户电子邮件列表作为字符串[]添加到该自定义模型中,然后当整个模型被传递到视图中时,我从model.E-mail中填充slect列表。我该怎么做?
<g:select name="emails" from="${userList.emails.unique()}" />