我在grails中工作,並且我在gsp中獲取我的域名類以訪問此域類的對象實例(特定id)。我正在嘗試下面的代碼。它是否正確?grails動態訪問域對象
String id = params['id']
String className = params['className']
def instance = className.get(id);
有沒有其他辦法呢?
我在grails中工作,並且我在gsp中獲取我的域名類以訪問此域類的對象實例(特定id)。我正在嘗試下面的代碼。它是否正確?grails動態訪問域對象
String id = params['id']
String className = params['className']
def instance = className.get(id);
有沒有其他辦法呢?
首先,您必須將grailsApplication bean注入到控制器中。
def grailsApplication
後,您可以使用getClassForName方法,通過名稱檢索所需類。
grailsApplication.getClassForName(className).
您必須使用全限定類名,例如my.test.MyClass
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文物找到課程。 – omarello
在控制器不需要'高清grailsApplication' - 變量已經被添加到元類 –