grails - 获取方法的参数

标签 grails grails-controller

我需要任何项目中所有 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/

相关文章:

forms - 在Grails上使用多个参数重定向到 Controller

Grails 使用 spring-security-core-3.0.6+ 重定向注销后

grails - Cobertura覆盖Grails

logging - 将日志输出发送到 grails 1.3.2 中的不同文件

grails - 使用Grails/GORM清除并恢复灯具数据

java - 如何在geb中下载zip文件到当前目录?

grails - 在grails版本2.3.8的request.withFormat关闭中找到默认操作

grails - grails不保存就插入DB,为什么呢?

grails - 如何在Grails Spring Security SAML插件的登录URL之前进行配置

grails - 是否可以通过Webflow Controller操作访问 View 状态?