【发布时间】:2012-08-01 03:38:57
【问题描述】:
如何列出 grails 插件的所有控制器/服务。 要么 我如何知道给定 GrailsApplication 类的 pluin 名称。
【问题讨论】:
标签: grails grails-plugin grails-2.0
如何列出 grails 插件的所有控制器/服务。 要么 我如何知道给定 GrailsApplication 类的 pluin 名称。
【问题讨论】:
标签: grails grails-plugin grails-2.0
插件中的工件使用GrailsPlugin 注释进行注释,以添加有关其源的元数据。因此,您可以使用它来查找控制器/服务/等是否存在。来自应用程序或这样的插件:
import org.codehaus.groovy.grails.plugins.metadata.GrailsPlugin
for (type in ['controller', 'service']) {
for (artifactClass in ctx.grailsApplication."${type}Classes") {
def clazz = artifactClass.clazz
def annotation = clazz.getAnnotation(GrailsPlugin)
if (annotation) {
println "$type $clazz.name from plugin '${annotation.name()}'"
}
else {
println "$type $clazz.name from application"
}
}
}
【讨论】:
在新创建的 Grails 应用程序中,grails-app/views/index.gsp 具有以下内容:
<g:each var="c" in="${grailsApplication.controllerClasses.sort { it.fullName } }">
<li class="controller"><g:link controller="${c.logicalPropertyName}">${c.fullName}</g:link></li>
</g:each>
您可以通过类似的方式获得服务。
【讨论】: