Grails 3: программный вызов методов проверки ограничений

Как я могу получить доступ к предварительно созданным проверкам ограничений в Grails?

Допустим, например, я хочу использовать валидатор range на объекте Map.

Map<String, Double> myData

static constraints = {
   myData validator: { val, obj, errors ->
       //Iterate through all Double values and validate using `range` constraint
   }
}

Кажется, не имеет смысла писать мой собственный метод проверки range, поскольку в Grails уже есть один встроенный где-то. Как я могу получить к нему доступ?

Чтобы уточнить, ограничение range - это всего лишь пример. Просто ищу, как вообще получить доступ к любой из этих предварительных сборок.

Обновлять:

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

def myMethod() {
    int myInt = 5;

    //HOW DO I CALL RANGE (OR ANY) OF THE PRE-BUILT VALIDATION METHODS
    if (RANGE(myInt, 0..5)) {
        //DO SOMETHING
    }
}

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

docs.grails.org/3.2.7/ref/Constraints/Usage.html указан здесь на панели быстрого доступа RHS
V H 07.08.2018 14:49

не работает domainInstance.validate ()?

elixir 07.08.2018 23:23

@Vahid Извините за непонятность. Я знаю, как использовать ограничения согласно документации. Я хочу использовать методы проверки вне ограничений. См. Обновленный вопрос.

Raymond Holguin 11.08.2018 00:17

Я не думаю, что вы можете делать то, что пытаетесь сделать. Проверка Grails просто расширяет проверку java, и короче говоря, если вы можете сделать это на Java, то это будет возможно в Groovy. stackoverflow.com/questions/28702809/…. По сути, лучший вариант, который я думаю для вашего сценария, - это создать bean-компонент Validation, например github.com/vahidhedayati/grails-queuemail-plugin/blob/master‌ /…. Затем позвольте bean-компоненту вызывать методы проверки, такие как bean.validate () в вашем методе

V H 13.08.2018 10:07

Извините, я надеюсь, что это вас еще больше не смущает, поэтому обычно вы связываете bean-компонент с данными перед передачей в службу github.com/vahidhedayati/grails-queuemail-plugin/blob/master‌ /… - вы можете выполнять всю его проверку в контроллере - контроллер автоматически волшебным образом связывает полученные параметры с bean-компонентом - вам нужно будет следить за некоторыми из моих контроллеров в самых последних плагинах, чтобы увидеть, как это работает - или в сервисе MyBean bean = new MyBean(); bean.myInt=5; if (bean.validate()) { //do something}

V H 13.08.2018 10:18
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Валидация полей ввода для базовой формы React
Валидация полей ввода для базовой формы React
В одном из моих проектов MERN Stack есть форма с именем, фамилией, контактным номером, адресом, электронной почтой, датой рождения, номером NIC, весом...
Пользовательские правила валидации в Laravel
Пользовательские правила валидации в Laravel
Если вы хотите создать свое собственное правило валидации, Laravel предоставляет возможность сделать это. Создайте правило с помощью следующей...
1
5
126
1

Ответы 1

myDate range: 18..65 //could be age of a person for example

Взято из: http://docs.grails.org/3.2.7/ref/Constraints/range.html

Извините, я спрашиваю не об этом. Я знаю, как использовать ограничения согласно документации. См. Обновленный вопрос.

Raymond Holguin 11.08.2018 00:17

Это Spring под капотом, так что среда валидации должна предоставить вам эту функциональность. Что касается grails, я не знаю, как использовать его так, как вам нужно.

Tuomas Valtonen 16.08.2018 09:53

Другие вопросы по теме