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}" />
...
正確JSP +サーブレットではありません。これがJSFです。それに応じてタイトルとタグを編集しました。 – BalusC
オブジェクト型で区別するのではなく、多態性を使用できませんか? – Viruzzo