Java EE WebアプリケーションのFreeMarkerテンプレートから、sessionID(つまりHttpSession.getId()
)にアクセスする必要があります。要するに、外部アナリティクスプロバイダに渡されているため、ユーザーが閲覧セッション中に行ったことに関するレポートを作成できます。Java HttpSession IDはFreeMarkerテンプレートに表示されますか?
明らかに、FreeMarkerに渡されるモデルオブジェクトにセッションIDを追加するだけです。しかし、このアプリケーションはちょっと混乱しています... FreeMarkerテンプレートは、さまざまなモデルオブジェクトを渡す複数のコントローラで使用できます。メンテナンス性のために、FreeMakerテンプレートからすべてのモデルクラスを変更せずにセッションIDにアクセスできるだけであれば、はるかに簡単です。
FreeMarker documentationは「application」、「session」、「request」のスコープを参照しています。しかし、この形式は値を返しません:
${Session.id}
は、私は、(getId()
など)HttpSession
オブジェクトのすべてのgetterメソッドが含まれていません「スコープ属性」...ではなく、することができ、単にそれらの値を疑いますHttpSession.getAttribute()
から取得しました。
モデルオブジェクトを明示的に渡すことなく、FreeMarkerテンプレートからJava EEセッションIDに簡単にアクセスできますか?
私は現在FreeMarker 2.3.19とSpring MVCで作業しており、セッション属性はすでにテンプレートで利用可能です。このSpring MVCに固有のものかどうかは不明です。 – arahant