下拉/选择Grails SpringSecurity属性列表?

时间:2012-10-08 15:23:44

标签: grails spring-security selectlist domain-model

我目前正在开发Grails项目,并想知道从Spring Security域模型中显示选择对象列表的最佳方法:

我知道如何创建一个选择列表,但我只是想在grails中找到最好的方法来填充该域中的对象。我正在考虑调用“ user.list(params)”这样的东西,然后将其传递给视图,然后我可以访问该域中定义的对象,但我不是100%肯定是最好的方式还是可以这样做?

提前致谢

EDIT .....

我在控制器中设置了以下自定义模型:

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}"

现在,当我运行应用程序时,我收到此错误:

No signature of method: grails.plugins.springsecurity.ui.UserModel.propertyMissing() is applicable for argument types: () values: [] Possible solutions: propertyMissing(java.lang.String)

任何人都可以帮忙吗?感谢

2 个答案:

答案 0 :(得分:0)

你看起来绝对正确。在控制器操作中,您填充模型:

def listUsers = {
    [ 'users': Users.list( params ) ]
}

并在视图中使用该模型填充列表框:

<g:select name="users" from="${ users }" />

你的问题看起来非常简单,所以我希望,我已经正确地理解了这个问题: - )

答案 1 :(得分:0)

我一直在努力工作并为我遇到的问题实施了解决方案,一切正常。以下是我在控制器中查看相关视图的内容:

def index = {
        [userList: Users(), command: new RegisterCommand(copy)]
    }

protected List Users() {
        lookupUserClass().list()
    }

List Users从扩展类调用另一个函数,如下所示:

protected Class<?> lookupUserClass() {
        grailsApplication.getDomainClass(lookupUserClassName()).clazz
    }

然后,此视图呈现我想要在选择列表中显示的项目列表:

<g:select name="emails" from="${userList.emails}" />

如果您正在寻找独特的价值观,也可以这样做:

<g:select name="emails" from="${userList.emails.unique()}" />

由于