ADF组件模型3

ADF Faces继承是JSF的机制我们知道JSF是在服务端生成DOM.ADF Faces本身也提供了很多的功能事件而方便的使用JavaScript来调用它们。不过,ADF Faces最为强大之处还是在于能提供继承机制从而扩展更多的客户端事件并且服务端和客户端是分开的!

因为ADF Faces是服务端组件虽然有支持客户端事件,但是我们并不能像html一样直接使用javascript.ADF提供AdfUIComponent及其子类来实现与编写javascript同样的效果。即使用AdfUIComponent来处理服务组件中的客户端事件!ADF的所有组件都在一个Adf开头的类来处理组件的属性及事件,比如AdfButton....

那么是否我们直接在javascript的方法中使用上述的类方法就能直接访问UI组件呢?当然不是的,ADF组件是服务端的,默认情况下只是在服务端生成DOM树,并不会在客户端也生成DOM树,javascript只能访问客户端DOM树中的组件。那如何才能生成客户端DOM树呢?clientListener!,如下面的代码:

<af:button text="Say Hello" id=”b1”>
  <af:clientListener method="sayHello" type="action"/>
</af:button>

通过clientListener对某一组件注册客户端事件。这样在点击button的时候javascript中才能响应buttonaction事件。

最后再说说clientCompanent属性。根据上面的解释,如果一个buttonclientCompanentfalse(默认值),然后在javascript中访问button是不可能拿到的,因为它在DOM结构中不存在!只有把clientCompanent设置为true才可以。而为什么当一组件使用clientListener 注册的时候不需要设置这个属性呢?因为ADF的模型会自动把这组件当成一个客户端组件来处理了。

现在我们可以通过javascript可以访问组件的属性了。但是有必要知道的,ADF UI中的某些属性是保护的。无法直接访问:具体请查阅:点击打开链接 的Table 4-1 Secure Client Properties幸好ADF提供了我们可以取消对组件属性保护的属性,如例子:<af:button text="commandButton 1" id="cb1" unsecure="disabled"/>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值