从freemarker获取请求标头

时间:2013-07-15 06:40:47

标签: ajax xmlhttprequest freemarker request-headers

我想在我的网站上使用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它也无济于事。

1 个答案:

答案 0 :(得分:1)

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