小编典典

在grails服务中使用g.render

ajax

我正在尝试在grails服务中使用g.render,但默认情况下似乎未将g提供给服务。有没有办法让模板引擎在服务中呈现视图?我可能会以错误的方式进行操作。我要寻找的是将视图从部分模板渲染为字符串,并将结果字符串作为JSON响应的一部分发送回去,以与AJAX更新一起使用。

有什么想法吗?


阅读 290

收藏
2020-07-26

共1个答案

小编典典

我完全同意John的观点-在服务中执行GSP通常是一个错误的设计决策。但是没有规则没有例外!如果仍然要执行此操作,请尝试以下方法:

class MyService implements InitializingBean {
    boolean transactional = false
    def gspTagLibraryLookup  // being automatically injected by spring
    def g

    public void afterPropertiesSet() {
        g = gspTagLibraryLookup.lookupNamespaceDispatcher("g")
        assert g
    }

    def serviceMethod() {    
       // do anything with e.g. g.render
    }
}

当然,使用gspTagLibraryLookup bean,您可以访问服务中所有其他所需的taglib。

2020-07-26