我添加了我认为会完成这项工作的代码,但看起来GrailsLayoutView
会以某种方式干扰它。
我有一个包含以下代码的插件:
def watchedResources = "file:./src/main/templates/scaffolding/*.gsp"
void onChange(Map<String, Object> event) {
applicationContext.getBean("jspViewResolver").innerViewResolver.generatedViewCache.clear()
}
这似乎符合我的预期,ScaffoldingViewResolver
重新生成视图,而不是将其从缓存中拉出来。然后传递正确呈现的视图,但它看起来像GrailsLayoutView.renderTemplate
调用obtainContent
,它返回脚手架视图的原始内容而不是更新的内容。然后,它会在decorator.render
的调用中使用错误的内容,并且所有希望看到更新的模板都会丢失。
对于熟悉此代码的任何人,我是否正确地解释了这个问题,你知道我可以通过某种方式解决这个问题吗?我有一些我想要处理的复杂的脚手架模板,但如果我每次做出更改都必须关闭grails,我会放弃它。
谢谢。