Grails динамически обращается к объектам домена - PullRequest
0 голосов
/ 08 ноября 2011

Я работаю в Grails и получаю имя класса домена из gsp для доступа к экземпляру объекта (с определенным идентификатором) этого класса домена.Я пытаюсь следующий код.Это правильно?

   String id = params['id']
   String className = params['className']

   def instance = className.get(id);

Есть ли другой способ?

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Прежде всего вы должны внедрить bean-компонент grailsApplication в ваш контроллер.

def grailsApplication 

, после чего вы можете использовать метод getClassForName для получения нужного класса по имени.Вы должны использовать полное имя класса, например my.test.MyClass

1 голос
/ 08 ноября 2011
def id = params.id
def className = params.'className'

def domainClazz = grailsApplication.classLoader.loadClass(className)
def instance = id ? domainClazz.get(id as Long) : null

Вы можете:

grailsApplication.classLoader.loadClass("Book") 

или

grailsApplication.classLoader.loadClass("com.yourapp.Book")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...