Привязка компонентов JSF - некоторая путаница

С веб-страниц, как этот,

http://www.jsftutorials.net/components/step5.html

Я понимаю, что атрибут привязки в компоненте тега/представления JSF заключается в привязке компонента представления к экземпляру Java компонента UI в резервном компоненте.

например, вот что делается в следующем коде:

<h:inputText value="#{ myBean.someProperty}" binding="#{ myBean.somePropertyInputText}"/>

но иногда я вижу код:

<h:commandButton id="t1" binding="#{foo}" value="Hello, World!" onclick="alert('I am #{id:cid(foo)}'); return false;" />

здесь id:cid - это функция taglib, которая определяется следующим образом:

public static String cid(UIComponent component) {
    FacesContext context = FacesContext.getCurrentInstance();
    return component.getClientId(context);
}

В приведенном выше коде binding="#{foo}" не привязывается к "экземпляру Java компонента UI в резервном компоненте".

так в чем же смысл таких выражений, как binding="#{foo}" ?

1 ответов


Он просто привязывает компонент к текущей области фасетки. Это особенно полезно, если вам это не нужно в бэк-Бобе вообще. Это сохраняет ваш резервный бобовый код от бесполезных свойств, которые вообще не используются ни в одном из других методов. Обратите внимание, что он также работает в JSF 1.2. Не уверен в JSF 1.0 / 1.1, хотя он использует другой и JSF-проприетарный El API.

Читайте также: