什么是JSF中的组件绑定?何时优先使用?

ben*_*enz 23 jsf binding components

binding在以下问题中阅读了有关属性的组件绑定:

据我所知,它将视图中JSF标记后面的UI组件绑定到UIComponent辅助bean中的属性.但是,我很困惑组件绑定的用途以及何时应该使用它.有人可以用更简单的方式解释它并给出一些实际的例子吗?

Bal*_*usC 39

如果您想要访问整个 UIComponent而不仅仅是其值,则应该使用它.例如,访问一些无法在视图中调用/绑定的方法.在你发现的第一个问题中回答了这个问题:JSF组件绑定 - 有些混乱

你找到的第二个问题,组件绑定vs findComponent() - 何时使用哪个?,只是回答" binding对比findComponent()",它似乎没有像你想象的那样回答" binding对比value".请不要对此感到困惑.value显然会胜利binding.

在现实世界的代码中,只有当开发人员需要通过编程方式操作其子代时,才能使用与支持bean的组件绑定component.getChildren().add(...).但是,bean应该是请求作用域.更广泛的范围可能导致不一致,因为组件实例基本上是基于每个请求创建的,不应在多个请求之间共享.视图范围也可以,但这是非常低效的内存,并且在早于2.1.18的Mojarra版本上,还必须关闭部分状态保存,否则binding将在每个请求上隐式地重新引用所引用的视图范围bean实例.另请参阅JSF2 Facelets中的JSTL ......有意义吗?相关的答案.

也可以将组件绑定到"视图".例如

<h:someComponent binding="#{some}">
Run Code Online (Sandbox Code Playgroud)

这是指UIComponentFacelet范围("页面范围")中的实例.这使您可以使用,例如#{some.clientId},#{some.value}在同一个页面的其他地方.请注意,此处不涉及任何支持bean.另请参见没有bean属性的JSF组件绑定.

以下是一些真实世界使用的binding属性设备:


归档时间:

查看次数:

38177 次

最近记录:

7 年,5 月 前