2011-07-13 16 views
0

コンテキストが文字列プロパティをspel解決可能な値として解釈せずに、spel式であることを意図したStringをアプリケーションコンテキストbeanプロパティに注入する方法を教えてください。BeanプロパティへのSpring Spel式の注入

<bean id="x" p:spelExpression="${#code}/${#value}"/>

私は文字列引数を取るために、クラスのsetterプロパティをしたいと豆の私有財産として再利用可能なSpelExpressionを作成し、しかし、春のアプリケーションコンテキストは、SpeIで式として#variableNameを認識しているように見えます初期化時に式を解釈しようとします。

私はSpelの解釈を非常に便利だと思っていますが、内部的にもspelを使い、自分のbeanに式を注入したいと考えています。

アプリケーションコンテキスト全体でspel式の解像度を無効にしたり変更したりすることなく、Bean、またはコンテキストファイル全体(おそらくいくつかの名前空間の偽名)でSpel解釈を無効にすることはできますか?

答えて

0

#{...}は、xmlコンテキストでのspelインタプリタのマーカーです。

私はundestandをしません:${#code}/${#value}。私が物事を理解すると、#{code/value}は、コードの値がの場合はidです。

したがって、それを解釈せずにspel式を使用するには、文字列code/valueをxmlに入れます。

+0

この質問はXMLとは関係ありません。私は、SPEl式を使用するアプリケーションコンテキストでBeanを作成できるようにしたいと考えています。私はspel式をアプリケーションコンテキストで解釈したくありません。これは、Beanが使用するためのものです。たとえば、BeanはExpressionを作成し、ループ内でコレクションexpression.getValue(currentCollectionItem)を繰り返し処理します。 – gbegley

+0

私は理解していません。あなたはそれがXMLではないと言いますが、あなたの質問にはXMLテキストがありますか?あなたの例では、 'code/value'、あるいはおそらく' @ code/@ value'は 'code'と' value'に依存しています。おそらくいくつかのコードを提供する(no xml?)? – Istao

+0

* xmlでないのは、文字列を生成するテンプレートパーサーコンテキストです。代わりの例はURLパスです(例:code = x、value = yは文字列 'x/y'を生成します)。問題のポイントは、まだ文字列式をBeanに挿入する方法であり、appコンテキストによって評価されたspel式として解釈されることはありません。 – gbegley

関連する問題