2012-03-14 3 views
0

도메인 객체가 아닌 도메인 객체 메타 데이터에 액세스하는 방법이 있습니까? 플러그인 등을 통한 프로젝트?Grails에서 사용자 생성 도메인 클래스의 도메인 이름을 얻는 방법

내가 후 GUI와 관련된 모든 종류의 활동에 대한 GSP 파일에 도메인 개체의 이름 (건물 메뉴 등) 그래서

을 받고있어 나는 같은 것을 할 경우 :

<% 
    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 주석이 컴파일러에 의해 그들에게 추가, 그래서 당신은이 같은 모델의 GSP에 컨트롤러에서 바로 응용 프로그램의 도메인 클래스를 전달할 수 있습니다 통해 다음 루프를

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> 
관련 문제