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 に答える