2012-03-14 74 views
0

有沒有一種方法可以訪問域對象只有用戶創建的域的元數據(缺少一個更好的單詞),而不是域對象的部分集成到項目通過插件等手段?在Grails中獲取用戶創建的域類的域名

我後越來越在GSP文件的域對象的各種GUI相關活動的名稱(建築物菜單等)

所以,如果我做這樣的事情:

<% 
    for(domain in grailsApplication.domainClasses){ 
     print ('<h3>domain class locgial property name: ' + domain.logicalPropertyName + '</h3>') 
     print ('<h3>domain full name: ' + domain.fullName + '</h3>') 
    } 
%> 

......我可以得到這些名字,在JS中對它們進行破解以確定它們是否屬於我自己生成的包(例如com.ra),但這似乎很脆弱。

回答

0

插件類具有org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin註釋添加到他們的編譯器,這樣你就可以從控制器傳遞下去只是應用的領域類普惠制模型是這樣的:通過

import org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin 

class MyController { 

    def myAction = { 
     ... 
     def appDomainClasses = grailsApplication.domainClasses.findAll { 
     !it.clazz.isAnnotationPresent(GrailsPlugin) 
     } 
     [appDomainClasses: appDomainClasses] 
    } 
} 

,然後循環他們在GSP:

<g:each var='dc' in='${appDomainClasses}'> 
<h3>domain class logical property name: ${dc.logicalPropertyName}</h3> 
<h3>domain full name: ${dc.fullName}</h3> 
</g:each>