Хобрук: Ваш путь к мастерству в программировании

Как объявить ограничения inList из контроллера в Grails?

Кто-нибудь может показать мне, как объявить ограничение inList в контроллере Grails?

Допустим, у меня есть этот класс:

class A {
    List hello
}

Как я могу добавить ограничение inList для hello List из контроллера?


Ответы:


1

Определить ограничение, в котором свойства List имеют значения, проверенные по списку списков? Звучит странно. но ты можешь сделать это. С этим классом:

class A {
    List hello
    static constraint = {
        hello inList:[['abc','def','ghi'],[1,2,3],['a','b']]
    }
}

вы можете сделать это в своем контроллере:

def instance1 = new A(hello:['abc','def','ghi']).save()    //valid
def instance2 = new A(hello:[1,2,3]).save()                //valid
def instance3 = new A(hello:['a','b']).save()              //valid
def instance4 = new A(hello:['a','b','c']).save()    //invalid
def instance5 = new A(hello:[1,2]).save()            //invalid

Однако если A является доменным классом, экземпляры которого сохраняются в традиционной базе данных, свойство hello будет удалено, поэтому вам нужно будет определить его с помощью

static hasMany = [hello: SomeClass]

вместо.

11.01.2013
  • Мне нужно, чтобы это было сделано динамически. Я извлекаю данные из веб-службы, и мне нужно добавить их в список приветствий (значение, которое я получил) 11.01.2013
  • Нет, вы не можете сделать это в определении класса. Вы можете определить класс предметной области, чтобы поддерживать допустимые параметры и сверять с ним входные значения. 11.01.2013

  • 2

    Вы можете написать собственный валидатор для своих полей, который проверяет, есть ли данные в списке. Вам придется реализовать проверку в списке вручную. Вы можете найти здесь официальную документацию. Есть несколько записей stackoverflow, которые могут помочь вам

    Grails: настраиваемый валидатор на основе предыдущего значения поля

    11.01.2013
    Новые материалы

    Запуск LF Internship v2 (1 апреля - 1 октября 2019 г.)
    Вот и открылись двери к великолепию 😃. Как и было обещано, заявки на стажировку принимаются с 7 января по 28 февраля 2019 г. . Нажмите ссылку, чтобы подать заявку:..

    BCACTF 4.0 Writeup — Freebee (Интернет)
    Описание вызова: Я хочу прочитать эту действительно классную статью, но у них есть платный доступ. Вы можете мне помочь? Веб-адрес вызова: http://challs.bcactf.com:30771/ . Если вы..

    Что такое обещание в JavaScript?
    Быстрое и объективное объяснение обещаний в JavaScript World. Определение Промис — это объект, содержащий действие, которое еще не завершено, другими словами, оно все еще выполняется и в..

    Рекурсивный отбор признаков: добавление или устранение?
    Умный способ осуществить исчерпывающий выбор функций При построении модели машинного обучения иметь больше функций важнее, чем меньше. Но использование только тех, которые вам нужны, более..

    Как не терять концентрацию во время программирования
    Вы когда-нибудь чувствовали, что каждый час каждого дня засыпают текстами, электронными письмами, сообщениями, твитами и личными перерывами? Реальность такова, что Мы живем в мире, где все..

    Сортировка ключей объекта в JavaScript
    Если вы работаете с JavaScript, вы можете столкнуться с ситуацией, когда вам нужно отсортировать ключи объекта. Вот руководство, которое поможет вам отсортировать ключи объекта в JavaScript. Шаг..

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