【发布时间】:2011-11-09 04:52:00
【问题描述】:
我在 grails 和 我从 gsp 获取我的域类名称以访问该域类的对象实例(具有特定 ID)。我正在尝试以下代码。这个对吗?
String id = params['id']
String className = params['className']
def instance = className.get(id);
还有其他方法吗?
【问题讨论】:
标签: grails
我在 grails 和 我从 gsp 获取我的域类名称以访问该域类的对象实例(具有特定 ID)。我正在尝试以下代码。这个对吗?
String id = params['id']
String className = params['className']
def instance = className.get(id);
还有其他方法吗?
【问题讨论】:
标签: grails
首先,您必须在控制器中注入 grailsApplication bean。
def grailsApplication
之后,您可以使用 getClassForName 方法按名称检索所需的类。
grailsApplication.getClassForName(className).
你必须使用完整的类名,例如我的.test.MyClass
【讨论】:
def grailsApplication - 变量已经添加到元类中
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")
【讨论】:
grailsApplication.classLoader.loadClass("Book") 不起作用。所以更安全的方法是通过 grails artefacts 找到类。