2011-07-09 6 views
0

我々は 呼び出すメソッドと関数のJSF2で

<h:outputLabel value="#{greetingBean.greeting['some-name']}" 

としてこの関数を呼び出すことができ、JSFページから、その後

public String greeting(String gtr) { 
     return "Hello " + gtr; 
} 

のようないくつかの機能は、今私の質問は、私は動的パラメータを渡したいされている場合'some-name'の代わりに同じbeanクラスからvalue="#{greetingBean.greeting[greetingBean.name]}のようなものが可能ですか?

私はMap<String, ArrayList>に値があり、特定のArrayListの値を編集したいので、これが必要ですか?

提案がありますか?

+0

をあなたは試したことがありますか? – bluefoot

+0

私はそれを試してみましたので、エラーを出しましたので、この回避策があるかどうか疑問に思っています – dinsim

+0

ELのバージョンは何ですか? – bluefoot

答えて

2

括弧はドット表記を置き換えるために使用します。

#{greetingBean.greeting['some-name']} 

だから

#{greetingBean.greeting.some-name} 

と同じであることは、greeting方法が呼び出されることはありません。代わりに、JSFはgreetingプロパティにアクセスし、greetingプロパティによって返されたオブジェクトのsome-nameプロパティにアクセスしようとします。つまり、上のコードはすでにエラーを生成しています。

あなたはEL 2.2を使用して、アクションを呼び出すしたい場合は、簡単に言えば:

#{greetingBean.greeting('some-name')} 

または

#{greetingBean.greetingThatReceivesAMap(greetingBean.name)} 
関連する問題