小编Joh*_*ner的帖子

Groovy方式动态调用静态方法

我知道在Groovy中,您可以使用字符串在类/对象上调用方法.例如:

Foo."get"(1)
  /* or */
String meth = "get"
Foo."$meth"(1)
Run Code Online (Sandbox Code Playgroud)

有没有办法在课堂上这样做?我将类的名称作为字符串,并希望能够动态调用该类.例如,希望做类似的事情:

String clazz = "Foo"
"$clazz".get(1)
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些非常明显的东西,但我无法弄明白.

groovy

27
推荐指数
2
解决办法
2万
查看次数

Groovy域映射

我有一个将pdf报告保存到Oracle DB中.报告的dataType是byteArray.

域定义如下:

static constraints = {
 report(nullable:false)
 company(nullable:false)    
 month(nullable:false)    
}

byte[] report
Company company
Date month
Run Code Online (Sandbox Code Playgroud)

}

不幸的是,这在Oracle DB中定义了一个具有RAW data_type和255的长度的字段.

我该如何将这个字段定义到域类中?应该定义为BLOB?

如果是的话,怎么做?

提前致谢.

oracle grails groovy grails-orm domain-mapping

7
推荐指数
1
解决办法
3943
查看次数

Grails的内容协商如何处理相反的类型?

Grails支持来自3个不同来源的内容协商:

  1. 接受标题
  2. 请求参数(格式)
  3. URI扩展

问题是,当它从多个地方获取内容信息时,它会做什么,特别是当它们彼此不一致时?

例如,如果Grails收到如下请求,会发生什么:

URL: http://example.com/book/list.html?format=json
Accept: application/xml
Run Code Online (Sandbox Code Playgroud)

Accept标头将解析为xml,URI扩展将解析为html,参数将解析为json.

这会做什么:

import grails.converters.*

class BookController {

    def list() {
        def books = Book.list()
        withFormat {
            html bookList: books
            xml { render books as XML }
            json { render books as JSON }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

rest grails content-type content-negotiation

2
推荐指数
1
解决办法
850
查看次数