【问题标题】:Get request header from freemarker从 freemarker 获取请求标头
【发布时间】:2013-07-15 06:40:47
【问题描述】:

我想在我的网站上使用Freemarker 作为模板引擎创建 AJAX 导航。 如果使用XMLHttpRequest 请求页面,则无需包含页眉和页脚。代码将如下所示:

[#if !XMLHttpRequest]
    [#include "header.ftl"]
[/#if]
${content}
[#if !XMLHttpRequest]
    [#include "footer.ftl"]
[/#if]

我的问题是如何定义请求来自 AJAX。客户端添加标头 X-Requested-With: XMLHttpRequest,如何在 Freemarker 中获取它? 我试图在HttpRequestHashModel找到它:

[#assign XMLHttpRequest = Request.headers['X-Requested-With']=="XMLHttpRequest" /]

但它会引发错误Expression Request.headers is undefined。我也尝试使用 RequestParameters 它也无济于事。

【问题讨论】:

    标签: ajax xmlhttprequest freemarker request-headers


    【解决方案1】:

    FreeMarker 本身并没有定义任何与 HTTP 相关的变量;它不像 JSP,它是一个通用引擎;它只看到传递给它的变量,并且不知道它们是什么……就 FreeMarker 而言,它们只是名称-值对。因此,如果您需要这些信息,那么您应该在操作中将其传递给 FreeMarker(可能全局使用过滤器或拦截器或您拥有的任何东西),或者 Web 应用程序框架应该。

    【讨论】:

    • 谢谢。我必须编写自己的自定义 FreeMarkerView,将请求标头放入模板模型,我的问题已经解决。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多