【问题标题】:grails groovyPageRenderer injecting in file inside src/groovygrails groovyPageRenderer 在 src/groovy 中的文件中注入
【发布时间】:2017-11-25 11:37:56
【问题描述】:

我想在 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


    【解决方案1】:

    我想,你指的是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()
    }
    

    在视图/myrenderer.gsp 中

    ${hello}
    

    相关帖子 -

    Accessing Grails services from src/groovy

    How to inject Grails services into src/groovy classes

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

    【讨论】:

    • grails 2.5.6 版怎么样(我忘了提)
    • 类似的概念。使用@Component@Autowired
    • 我尝试了与stackoverflow.com/questions/33427697/… 相关的几乎所有组合,但没有运气,包括这里的组合,有什么提示吗? (豆为空)
    • 你在哪里找到grailsApplication
    • 放入你的 Config.groovy grails.spring.bean.packages=['gsprenderer'] 然后使用 @Autowired@Component。此外,将@Autowired GrailsApplication grailsApplication 或仅 @Autowired PageRenderer groovyPageRenderer 放在GSPFormatter 类中
    【解决方案2】:

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

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

    问题已结束,

    非常感谢

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 2012-05-25
      • 1970-01-01
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      相关资源
      最近更新 更多