我需要任何项目中所有 Controller 在运行时的所有方法及其参数的列表。 我还没有找到检索参数的方法或示例。例如在方法中:
def login(String username, String password) {
...
}
我需要参数用户名和密码及其类型。
非常感谢您的帮助。
最佳答案
在编译期间,AST 转换会为带有参数的操作方法添加一个空方法。这是用 grails.web.Action
注释进行注释的,该注释具有一个 commandObjects
属性,其中包含命令对象类的 Class[]
数组,并且常规方法参数类型。
因此您可以循环遍历应用程序中的所有 Controller ,并找到所有带注释的方法:
import grails.web.Action
for (cc in grailsApplication.controllerClasses) {
for (m in cc.clazz.methods) {
def ann = m.getAnnotation(Action)
if (ann) {
String controller = cc.logicalPropertyName
String action = m.name
Class[] argTypes = ann.commandObjects()
println "${controller}.$action(${argTypes*.name.join(', ')})"
}
}
}
关于grails - 获取方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446960/