Выпадающий список/выбор списка свойств Grails SpringSecurity?

В настоящее время я работаю над проектом Grails и хотел бы узнать, как лучше всего показать список выбора объектов из модели предметной области Spring Security:

Я знаю, как создать список выбора, но я просто хочу найти лучший способ в Grails заполнить его объектами из этого домена. Я думал вызвать что-то вроде "user.list(params)", а затем передать это в представление, после чего я мог бы получить доступ к определенному объекту в этом домене, но я не уверен на 100%, что это лучший способ или если это можно сделать таким образом?

заранее спасибо

РЕДАКТИРОВАТЬ.....

У меня есть следующая настройка пользовательской модели в контроллере:

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)

Может ли кто-нибудь помочь с этим ?? Спасибо


person user723858    schedule 08.10.2012    source источник


Ответы (2)


Ваш подход выглядит абсолютно правильным. В действии контроллера вы заполняете модель:

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

и в представлении вы используете модель для заполнения списка:

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

Ваша проблема выглядит очень простой, поэтому я надеюсь, что правильно понял суть вопроса :-)

person Tom Metz    schedule 08.10.2012
comment
У меня уже есть модель, передаваемая в представление, я предполагаю, что невозможно передать другую модель в представление, а только сопоставленную модель, которой у меня нет - person user723858; 09.10.2012
comment
Мне нужно добавить список, скажем, электронных писем пользователей в виде String[] в эту настраиваемую модель, а затем, когда вся модель будет передана в представление, я заполню список выбора из model.e-mail. Как бы я это сделал? - person user723858; 09.10.2012

Я много работал над этим и реализовал решение проблемы, с которой я столкнулся, и все работает нормально. Ниже приведено то, что у меня есть в моем контроллере для рассматриваемого представления:

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

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

Список пользователей вызывает другую функцию из расширенного класса, которая показана ниже:

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

Затем это представление отображает список элементов, которые я хочу показать в списке выбора:

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

Вы также можете сделать это, если ищете уникальные значения:

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

Спасибо

person user723858    schedule 09.10.2012