在没有请求的情况下使用 GroovyPagesTemplateEngine?

发布于 2024-12-10 04:22:55 字数 803 浏览 0 评论 0原文

我正在尝试在没有真正的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拔了角的鹿 2024-12-17 04:22:55

我想你可以模拟网络请求。此帖子 可能就是您正在寻找的。

I guess you can mock the web request. This posting is probably what you are looking for.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文