从像这样的网页
http://www.jsftutorials.net/components/step5.html
我理解JSF标记/视图组件中的绑定属性是将视图组件绑定到辅助bean中UI组件的Java实例。
,例如,在以下代码中完成的操作:
<h:inputText value="#{ myBean.someProperty}" binding="#{ myBean.somePropertyInputText}"/>
但有时我会看到code like this:
<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}"
没有绑定到“支持bean中的UI组件的Java实例”。
那么binding="#{foo}"
等表达式的含义是什么?
答案 0 :(得分:10)
它只是将组件绑定到当前的Facelet范围。如果你根本不需要它,那么这个特别有用。这将保护您的支持bean代码免于无用的属性,这些属性根本没有在任何其他方法中使用。请注意,它在JSF 1.2中也是这样的。不确定JSF 1.0 / 1.1,因为它使用了不同的JSF专有EL API。