Поскольку вы используете библиотеку компонентов Woodstock, которая была заброшена более 4 лет назад, я готов поспорить, что вы поддерживаете устаревшее приложение JSF 1.x, которое никогда не обновлялось для замены мертвой библиотеки компонентов Woodstock.В JSF 1.x нет API-метода, который позволяет вам получить текущий компонент в геттере.
В JSF 2.x вы могли бы использовать UIComponent#getCurrentComponent()
для этого:
public String getImgSRC() {
UIComponent component = UIComponent.getCurrentComponent(FacesContext.getCurrentInstance());
// ...
}
Но в JSF 1.x этот метод недоступен.Я бы предложил другой подход.Если единственной целью является исключение стандартного кода свойства / получателя, то вместо этого можно использовать Map
для хранения значений.Карты можно рассматривать как Javabeans в EL.
Примерно так:
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}" />
...