Ограниченные свойства для недоменных классов, но с @Validateable

#grails #groovy

#grails #groovy

Вопрос:

Приветствую.

Просматривая Google, я обнаружил, что вы можете получить списки ограничений для класса домена в grails.

 def constraintList= new DefaultGrailsDomainClass(User.class).constrainedProperties
  

Возможно ли сделать то же самое для классов, которые не являются объектами command или domain objects, но имеют аннотацию @Validatable?

Комментарии:

1. ОК. Я недостаточно подробно описал свой вопрос.

2. ОК. Я недостаточно подробно описал свой вопрос. Я играю с vaadin, и моя идея состоит в том, чтобы реализовать что-то вроде фабрики валидаторов, которая работает с формами vaadin на основе ограничений объекта. Аналогично jquery-validation-ui-plugin ( code.google.com/p/jquery-validation-ui-plugin ) но с vaadin. Для достижения этого мне нужно искать свойства объекта, чтобы получить их определенные ограничения. Это можно сделать с помощью объекта домена или командного объекта. Но я не нашел способа сделать это с помощью класса с @Validateable.

Ответ №1:

Да, но для работы @Validateable аннотации вам необходимо применить следующее свойство к Config.groovy

 // This list should contain the packages that are annotated @Validateable
grails.validateable.packages = ['com.example.package1', 'com.example.package2]
  

Комментарии:

1. Я знаю, что определение в Config.groovy свойства grails.validateable. пакеты позволяют использовать проверку в других классах. Вопрос заключается в том, как (во время выполнения) узнать, какие ограничения определены для класса.

Ответ №2:

Разве для этого не было бы достаточно заглянуть в constraints статическое свойство класса?