0

我想使用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 它也无济于事。

4

1 回答 1

1

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

于 2013-07-15T08:53:43.113 回答