2

我希望我的模板能够更智能地生成控制器。在我的域类中,我指定了一个带有属性的枚举,这些属性应该添加到控制器中的安全注释中。

static enum SecurityProperties {
    ROLE_SUPER_USER( "ROLE_SUPER_USER" ),
    IS_AUTHENTICATED_FULLY( "IS_AUTHENTICATED_FULLY" )

    SecurityProperties( String s ) {
        this.s = s
    }

    @Override
    public String toString() {
        return s;
    }        
}

我希望模板查看此枚举并在生成控制器时在控制器中创建安全注释。我经常使用模板,运行起来很烦人,generate-all然后必须为我的所有控制器重新添加安全注释。

我的问题是我在从模板访问枚举时遇到问题,因为我无法获取域类。

我通常会得到这样的域类:

grailsApplication.getArtefact( "Domain", "myDomainClass" )?.getClazz()

grailsApplication在模板中不可用。

还有什么其他的 Grails / Groovy 方法可以获取课程或grailsApplication提供课程?

4

1 回答 1

2

在脚手架模板中,您有一个domainClass可用的变量,其中包含GrailsDomainClass,因此domainClass.clazz应该为您提供所需的内容。

于 2012-07-06T16:07:48.340 回答