监听客户端事件----ADF Faces入门(文档阅读)
来源:互联网 发布:网络隔离 编辑:程序博客网 时间:2024/05/17 03:55
如何监听客户端事件:
在传统的JSF应用中,如果你想处理客户端的事件,你必须去监听DOM级别的事件。然而,这些事件都不以一种简易的方式进行交付。
ADF Faces客户端事件监听模型类似于JSF的,但是它是实现在客户端。它从DOM中抽象出来,提供了组件级别的事件模型和生命周期,可以独立于服务器执行。因此,你不需要侦听按钮的Click事件。你可以监听AdfActionEvent事件,可通过按键或鼠标事件触发。
由客户端发送的事件都是AdfBaseEvent类的子类。每个客户端事件都存在着事件源,这就是触发事件的组件。事件还存在着类型,例如action,dialog,用来决定哪个监听器对此事件进行关注。你可以使用af:clientListener 标签注册客户端监听器到组件。
例子:通过af:clientListener标签注册一个输出hello dick的事件到一个按钮组件中。
步骤:
1. 拖一个按钮到页面中
2. 为按钮添加事件监听器,即拖一个af:clientListener到按钮中,并设置方法名称以及触发类型,有很多种,这里选择action
3. 写监听代码,JS代码,拖一个af:resource到页面中,然后设置类型为JavaScript,往里面填代码,function。。。。。
原理:当点击按钮的时候,存在一个客户端版本的组件,引起了AdfAction客户端事件。因为有一个clientListener标签被配置成监听
AdfAction事件,就触发了JS里面sayHello方法的执行。
如何在ADF页面中使用JavaScript:
有两种方式方式,一种就是上述的方法,直接添加内联(inline)的JavaScript代码到页面中,另一种方式是导入JavaScript库到页面中。第二种方式比较庞大,JS库可以供多个页面共享,并且可以缓存在浏览器中。你随时随刻都可以导入JS库。但是这种方式会导致页面巨大,在载入的时候,会影响到性能。所以还是建议使用第一种方式,但是呢会有这种情况,当你发现多个页面使用相同的JS代码的时候,第一种方式会导致代码很恶心,你可以选择在一个模板中导入JS库的方式。当当当JS代码库特别大的时候,你就需要去考虑把这个代码库分割成多个有特定意义的块,而且这些快只在特定的页面(不能是模板)中使用。这样做可以提高性能。
如何导入JS库
用af:resource从页面中获取JS库,这个标签必须放在document标签下名为metaContainer的facet中。
如:
然后其他的如上。。。。。。
如何获取客户端事件源:
上面讲到每个客户端事件都会有事件源,也就是组件
用getSource方法
- 监听客户端事件----ADF Faces入门(文档阅读)
- 实例化客户端组件----ADF Faces入门(文档阅读)
- 在客户端访问组件属性----ADF Faces入门(文档阅读)
- 优化(optimized)生命周期----ADF Faces入门(文档阅读)
- Render和visible----------ADF Faces入门(文档阅读)
- JSF的生命周期--ADF Faces入门(文档阅读)
- 国际化及本地化页面---------ADF Faces入门(文档阅读)
- Render和visible----------ADF Faces入门(文档阅读)
- 关于Immediate属性的使用(注意)----ADF Faces入门(文档阅读)
- JSF, ADF Faces
- ADF FACES 布局
- adf faces 样式设定
- 使用ADF Faces 之一:开发用户界面(基于AJAX)
- ADF FACES 部分页面渲染(PPR)技术
- 关于Oracle ADF 11g实现自动提示(客户端和服务端监听的使用)(一)
- 使用 JSF 开发基于 Ajax 的用户界面:ADF Faces 富客户端组件简介
- ADF Faces & MyFaces Tiles Support
- oracle ADF Faces tag(图文)
- MFC 组合键的实现
- 制作集成SP1的Visual Studio 2005
- _stdcall _cdecl fastcall 调用方式详解
- [转]用OpenOCD、GDB、Insight 调试U-BOOT
- 操作符重载
- 监听客户端事件----ADF Faces入门(文档阅读)
- Building Qt for OMAP35xx with OpenGL ES accelerated by SGX
- 网页游戏3D技术
- 开篇
- 20.Iterator(行为型模式)
- 字符串哈希
- java class文件的修改(转)
- C++ 清空消息队列
- [HP-UX] 20 group limit for users