1.概述
JSF事件机制:模拟传统的C/S编程模式,隐藏传统Web请求响应模式,模拟了C/S的事件通信机制
2.组成
JSF标签:是一种服务器组件,允许组件 和 托管Bean绑定。
托管Bean定的方法:Action事件,值改变事件
3.Java事件机制概述
事件源:各个组件,可以产生事件
事件:封装了GUI组件发生的事件
事件监听器:监听事件源发生的 事件,并对各种事件做出响应
外部动作——>事件源(产生事件对象)——>事件监听器(注册到事件源,传入事件对象)——>事件处理器
4. 委派事件处理方式
事件源(组件) 将整个事件处理委派给 事件监听器(对象)。
当事件源发生指定事件时,就通知给事件监听器处理
5. JSF事件模型
5.1 JSF事件模型
事件源:JSF所有UI组件
事件监听器:Bean的某个方法,专门事件监听器对象
5.2 四种事件对象
Action事件:点击某按钮会触发Action事件
值改变事件:输入框值改变事件
数据模型事件:表的某行被选中触发事件
声明周期事件:JSF因公声明周期改变事件
6. Java事件机制 vs JSF事件机制
共同点:事件源注册事件监听器方法
不同点1: Java注册事件监听器:addxxxListener(监听器对象)
JSF注册事件监听器:自定义标签+配置文件
不同点2:Java事件监听器 必须实现一个独立监听器类
JSF事件监听器:托管Bean中某个方法(特定签名)
1. 托管Bean提供的监听器处理方法:public void XXX(ActionEvent event)
2. 页面注册监听器方法:
<h:commandLink id="Duke" action="bookstore">
<f:actionListener
type="javaeetutorial.dukesbookstore.listeners.LinkBookChangeListener" />
<h:outputText value="#{bundle.Book201}"/>
</h:commandLink>