我在grails工作 我从gsp获取我的域类名,以访问此域类的对象实例(特定id)。我正在尝试以下代码。它是否正确?
String id = params['id']
String className = params['className']
def instance = className.get(id);
还有其他办法吗?
答案 0 :(得分:3)
首先,您必须在控制器中注入grailsApplication bean。
def grailsApplication
之后,您可以使用getClassForName方法按名称检索所需的类。
grailsApplication.getClassForName(className).
您必须使用完整的合格类名称,例如my.test.MyClass
答案 1 :(得分:1)
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")