2011-07-15 28 views
6

一部のフレームワーク(Spring、Tomcat自身)は、デフォルトでEL式では使用できないサーブレット要求属性を追加します。例では、ELパーサがjavaxは、オブジェクトAとservletの鍵になると予想しているためそれが働いていないしかし、私は通常JSTLタグ(ドット文字)を使用してJSP ELをエスケープします

<c:out value="${javax.servlet.forward.context_path}" /> 

を使用したいJSTLを使用して値を取得するには、だから、

javax.servlet.forward.context_path = /myWebapp 

だろうそのオブジェクトのプロパティになる(など)。

私の質問は:どのように私はドット文字をエスケープするのですか?

私は

<c:out value="${javax\.servlet\.forward\.context_path}" /> 

を使用してみましたが、それはどちらか動作していないだとELパーサからエラーが発生します。

私はマップを扱うとき、私は

<c:out value="${aMap['key.from.map.with.dots']}" /> 

ようなものを使用することができます知っているが、私はまた

<c:out value="${['javax.servlet.forward.context_path']}" /> 

を使用して試したことから、要求からの最初のレベルのオブジェクトで作業していないthatsのどちらもうまくいきません。

アイデア?

答えて

8

属性の有効範囲を知っている場合は、適切な暗黙的オブジェクトからその属性を取得できます。

${requestScope['javax.servlet.forward.context_path']} 

でも、私は{xxx}ないような方法ですべてのスコープをチェックする暗黙のオブジェクトがあるかどうかわかりません。

関連する問題