在没有请求的情况下使用 GroovyPagesTemplateEngine?
我正在尝试在没有真正的 http 请求的情况下评估 GSP 文件。我正在尝试这样做:
String compileGsp(File input) {
def text = ''
try{
text = groovyPagesTemplateEngine.createTemplate(input).make().toString()
}
catch( Exception e ){
StackTraceUtils.sanitize(e).printStackTrace()
}
return text
}
但这会引发异常并产生以下结果:
java.lang.IllegalStateException:未找到线程绑定请求:是 您指的是实际 Web 请求之外的请求属性, 或者在原始接收线程之外处理请求?如果 您实际上是在网络请求中进行操作并且仍然收到此消息 消息,您的代码可能在外部运行 DispatcherServlet/DispatcherPortlet:在本例中,使用 RequestContextListener 或 RequestContextFilter 暴露当前 请求。
如何在没有请求的情况下评估 GSP?如果我使用 SimpleTemplateEngine
,我会获得一些功能,但会丢失所有标记库,其中包括像
这样的 request-void 标记
I'm trying to evaluate a GSP file without a real http request. I'm trying this:
String compileGsp(File input) {
def text = ''
try{
text = groovyPagesTemplateEngine.createTemplate(input).make().toString()
}
catch( Exception e ){
StackTraceUtils.sanitize(e).printStackTrace()
}
return text
}
but this throws an exception and yields this:
java.lang.IllegalStateException: No thread-bound request found: Are
you referring to request attributes outside of an actual web request,
or processing a request outside of the originally receiving thread? If
you are actually operating within a web request and still receive this
message, your code is probably running outside of
DispatcherServlet/DispatcherPortlet: In this case, use
RequestContextListener or RequestContextFilter to expose the current
request.
How can I evaluate GSPs without a request? If I use SimpleTemplateEngine
, I get some functionality, but I lose all of the taglibs, which include request-void tags like <g:each>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我想你可以模拟网络请求。此帖子 可能就是您正在寻找的。
I guess you can mock the web request. This posting is probably what you are looking for.