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