2017-11-25 1 views
0

Ich möchte groovyPageRenderer in einem src/groovy/GSPFormatter, injizieren Wie kann ich das tun, ohne den neuen Konstruktor aufzurufen?Grails groovyPageRenderer injizieren in Datei innerhalb src/groovy

EDIT

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) 
    } 
} 

ist mein Code in src/groovy/GSPFormatter (im Grunde mit dem Standard-Injektionsmechanismus, der funktioniert auch nicht)

Antwort

0

denke ich, Sie beziehen sich auf grails.gsp.PageRenderer ... btw, ich bin mit Grails 3.3.0

Hier ist ein kleines (getestet) Beispiel -

In application.yml

grails: 
    spring: 
     bean: 
      packages: 
        - ovr 

in 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']) 
    } 

} 

in Controller

@Autowired 
CustomRenderer customRenderer 

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

in views/myrenderer.gsp

${hello} 

Verwandte Post -

Accessing Grails services from src/groovy

How to inject Grails services into src/groovy classes

PS - wenn Sie Ihre bean in /conf/spring/resources.groovy beschreiben Sie bitte

+0

was Grails Version 2.5.6 (ich vergaß zu erwähnen,) –

+0

Ähnliche Konzept. Verwenden Sie '@ Component' und' @ Autowired' – devbd

+0

können Sie beitreten https://chat.stackoverflow.com/rooms/info/159807/grails – devbd

-1

Es scheint das Teil in application.yml (oben) entkommen, dass Sie keine Bohne innerhalb einer Datei in die injizieren src-Hierarchie.

Ich drehe meine Orientierung mit einem renderingtemplates Motor zu tun hat (einfach, ...)

Geschlossene Frage,

vielen Dank

Verwandte Themen