【发布时间】:2015-08-27 12:17:58
【问题描述】:
我正在尝试在简单的 Spring MVC 应用程序(没有 Spring Boot)中运行 GSP 视图。我正在尝试复制位于此处的示例:https://github.com/grails/grails-boot/tree/master/sample-apps/gsp,但我正在尝试在纯 Spring MVC 环境中运行它。
我已经成功进入了渲染 GSP 页面的阶段,一些 g: 标签甚至可以工作(例如 g:if 和 g:each)但是当我尝试添加标签库时出现问题。我已经建立了一个简单的标签库如下:
@TagLib
@Component
class ExampleTaglib {
static namespace = "xx"
Closure testtag = { attrs, body -> // simple "def" leads to tag not being found
out << "Test"
}
}
当我尝试使用该标签时出现错误:No such property: out.
我花了一些时间调试这个问题,它显示从 org.codehaus.groovy.grails.plugins.web.api.TagLibraryApi 添加方法的 AST 转换似乎没有应用(我已经使用 groovyc 和所有必需的库编译了 taglib - 没有 getOut()生成的 .class 文件中的方法)。
另一方面,我看到 Grails 项目中已编译的标记库应用了这种转换(在查看已编译的 .class 文件时,我可以看到 getOut() 方法)。
编译的class文件中没有getOut()方法有什么原因吗? Grails taglib 的编译过程和手动编译 taglib 有区别吗?
【问题讨论】:
标签: spring-mvc grails gsp