grails groovyPageRenderer 注入文件 src/groovy

grails groovyPageRenderer injecting in file inside src/groovy

我想在 src/groovy/GSPFormatter 中注入 groovyPageRenderer, 如果不调用新的构造函数,我该怎么做?

编辑

package gsprenderer
import spud.core.FormatterInterface
import grails.gsp.PageRenderer

class GSPFormatter implements FormatterInterface {

   PageRenderer groovyPageRenderer = grailsApplication.mainContext.getBean('groovyPageRenderer')

   String compile(String content) {
      groovyPageRenderer.render(view: new ByteArrayOutputStream().write(content.bytes), null)
   }
}

是我在src/groovy/GSPFormatter中的代码(基本上是默认的注入机制,它也不起作用)

我想,你指的是 grails.gsp.PageRenderer ...顺便说一句,我使用的是 Grails 3.3.0

这是一个小的(测试)例子-

在application.yml

grails:
    spring:
        bean:
            packages:
                    - ovr

在scr/groovy/ovr

package ovr.renderer

import grails.gsp.PageRenderer
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Component

@Component
class CustomRenderer {
    @Autowired
    PageRenderer pageRenderer

    def page(){
        pageRenderer.render(view: '/myrenderer', model: [hello: 'hello'])
    }

}

在控制器中

@Autowired
CustomRenderer customRenderer

def myPage(){
    render customRenderer.page()
}

在 views/myrenderer.gsp

${hello}

相关 post -

PS - 如果您在 /conf/spring/resources.groovy 中描述了您的 bean,请转义 application.yml 中的部分(如上所示)

您似乎无法在 src 层次结构中的文件中注入任何 bean。

我转向处理渲染模板引擎(简单,...)

问题已关闭,

非常感谢