2017-11-25 165 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引擎處理(簡單,...)

問題已關閉,

千恩萬謝