我试图在grails服务中使用g.render,但是默认情况下,g不会提供给服务。有没有办法让模板引擎在服务中呈现视图?我可能会这样做错了。我正在寻找的是将视图从部分模板渲染为字符串,并将结果字符串发送回作为JSON响应的一部分,以与AJAX更新一起使用。
有什么想法吗?
我完全同意约翰的论证 – 在服务中进行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。