2017-11-25 162 views
0

我想在src/groovy/GSPFormatter中注入groovyPageRenderer, 如何在不调用新构造函数的情况下做到这一点?grails groovyPageRenderer在src/groovy文件中注入

编辑

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代码/常规/ GSPFormatter(基本上与默认注入机制也不管用)

回答

0

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

这里是一个小(测试)例如 -

在SCR /常规application.yml

grails: 
    spring: 
     bean: 
      packages: 
        - ovr 

/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() 
} 
在视图

/myrenderer.gsp

${hello} 

相关交 -

Accessing Grails services from src/groovy

How to inject Grails services into src/groovy classes

PS - 如果你描述你的bean/conf/spring/resources.groovy请逃避application.yml的部分(上面给出的)

+0

怎么样的Grails版本2.5.6(我忘了提到它) –

+0

类似的概念。使用'@ Component'和'@ Autowired' – devbd

+0

你可以加入https://chat.stackoverflow.com/rooms/info/159807/grails – devbd

-1

看来,你不能在一个文件中注入任何豆src层次结构。

我把我的方位与renderingtemplates引擎处理(简单,...)

问题已关闭,

千恩万谢