2012-02-03 24 views
2

私のページには、2つ(およびそれ以上)のイメージコンテナがあります。私はそれぞれのコンテナがそのidに従って異なるソースを持つように、それらのurlプロパティをバインドしたいと思います。 私は私のJSPでこのようなものがあります。しかし、私はそれが呼び出さとに基づいてされた構成要素からゲッターに知ることができるようにしたい、私はimgSRCゲッターを持つバッキングBeanコードでgetterメソッドで呼び出し元コンポーネントを調べる方法は?

<webuijsf:image id="image2" binding="#{Page1.img_2}" url="#{Page1.imgSRC}" /> 

をコンポーネントのID switchを使用して、どのURLをコンポーネントに返すかを決定します。

これはまったく可能ですか?もしそうなら、どうですか?

+0

正確JSP +サーブレットではありません。これがJSFです。それに応じてタイトルとタグを編集しました。 – BalusC

+0

オブジェクト型で区別するのではなく、多態性を使用できませんか? – Viruzzo

答えて

6

4年以上前に放棄されたWoodstockコンポーネントライブラリを使用しているため、古いWoodstockコンポーネントライブラリを置き換えることはできませんでした。 JSF 1.xには、API提供のメソッドはありません。これにより、ゲッターの現在のコンポーネントを取得できます。 JSF 2.xで

あなたは、このためにUIComponent#getCurrentComponent()を使用することもできました:

public String getImgSRC() { 
    UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance()); 
    // ... 
} 

をしかし、JSF 1.xではこの方法は使用できません。私は別のアプローチを提案します。プロパティ/ゲッターのボイラープレートコードを排除することが唯一の目的の場合は、値を保持する代わりにMapを使用できます。マップはELのJavabeansのように扱うことができます。このような

何か:

private static Map<String, String> imageURLs = new HashMap<String, String>(); 

static { 
    imageURLs.put("img1", "foo.png"); 
    imageURLs.put("img2", "bar.png"); 
    imageURLs.put("img3", "baz.png"); 
    // ... 
} 

public Map<String, String> getImageURLs() { 
    return imageURLs; 
} 

として使用することができます。

<webuijsf:image url="#{Page1.imageURLs.img1}" /> 
<webuijsf:image url="#{Page1.imageURLs.img2}" /> 
<webuijsf:image url="#{Page1.imageURLs.img3}" /> 
... 
+0

ご返信ありがとうございます。私の質問が暗示するように、私はJavaコースを取っているので、私はコースの本(DeitelのJava)で提供されたNetBeans 6.5 IDEの一部としてWoodstockコンポーネントライブラリを使用しています。 JSF 2.xを使用しようとします.2番目のソリューションは、私が現在行っているのと同じポジションになりました。それぞれのイメージコンテナは異なるバインディングを使用する必要がありますが、すべてのイメージで同じものを使用したいのですが、ゲッターはそれを使用しているコンポーネントに応じた応答を返さなければなりません。 – eRez

+0

うわー、その本は本当に時代遅れでなければなりません。プログラミング言語やICT関連のものなど、動くような素早いテーマの場合、実際には1年以上前に発行された本を探しているべきです。この方法で 'binding'属性を使うのは非常に貧しいことです。 JSFを開始し、より最近の/適切なチュートリアルへのリンクを見つけるには、私たちのJSF wikiページを参照することをお勧めします:http://stackoverflow.com/tags/jsf/info下にリストされています。ウッドストックのwikiページもありますので興味がある場合はこちらをご覧ください:http://stackoverflow.com/tags/woodstock/info – BalusC

関連する問題