Grails: как применить ограничение к столбцу, который будет отображаться в списке - PullRequest
0 голосов
/ 16 декабря 2011

Я новичок в Grail, пожалуйста, дайте мне идею, как применить ограничение к столбцу, который будет отображаться в списке после записи в контроллер скаффолдинга true, т.е. у меня есть столбцы в доменном имени, электронной почте, пароле, телефоне, но я хочу показатьтолько имя, адрес электронной почты и телефон в сетке, когда список будет отображаться, есть ли способ сделать это через домен?пожалуйста, дайте мне решение для этого спасибо.

Ответы [ 4 ]

2 голосов
/ 17 декабря 2011

Вы можете установить шаблоны (http://grails.org/doc/latest/ref/Command%20Line/install-templates.html)

grails install-templates

Шаблоны дают вам возможность перезаписывать шаблоны по умолчанию, которые Grails использует в контроллерах, представлениях и т. Д. Если вы посмотрите на src / templates / scaffolding / list.gsp, вы увидите, что они уже исключают некоторые свойства ('id' и 'версия). Я добавил статический список в свой класс домена:

static excludedFromListViewProperties = ["password"]

В list.gsp я заменил:

<%  excludedProps = Event.allEvents.toList() << 'id' << 'version'                           
allowedNames = domainClass.persistentProperties*.name << 'dateCreated' << 'lastUpdated'

с:

<%  excludedProps = Event.allEvents.toList() << 'id' << 'version'
excludedProps.addAll(domainClass.getClazz().excludedFromListViewProperties ?: [])
allowedNames = domainClass.persistentProperties*.name << 'dateCreated' << 'lastUpdated'

Дайте мне знать, если это не сработает для вас.

0 голосов
/ 27 января 2014

Немного улучшенная версия ответа Джарреда, который проверяет существование свойства excludeFromListViewProperties:

domainClass.getClazz().metaClass.properties.findAll{
   if (it.name == "excludedFromListViewProperties"){
        excludedProps.addAll(domainClass.getClazz().excludedFromListViewProperties ?: [])
    }
}
0 голосов
/ 16 декабря 2011

Вы можете взглянуть на Динамические леса , в которых указано

Кроме того, стандартные представления скаффолдов ожидают переменные модели в виде InstanceList для коллекций и Instance для отдельных экземпляров. Соблазнительно использовать такие свойства, как «книги» и «книга», но они не сработают.

Так что, может быть, вы можете переопределить свои действия в скаффолдинге, возвращая экземпляры только с теми полями, которые вам нужны. Но вам может понадобиться промежуточный тип данных, я думаю. Это способ исследовать

0 голосов
/ 16 декабря 2011

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

grails generate-all packageName.DomainClass

После выполнения команды вы можете просто изменять сгенерированные контроллеры и представления по своему усмотрению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...