当前位置:51VIP源码软件下载联盟网络学院程序开发java教程 → JSF中的事件

JSF中的事件

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2008-7-3 2:37:26 我要发布文章
 JSF的重要目的是试图允许开发者象开发Swing一样开发Web,所以事件的概念非常重要(这也是Struts的不足之处)。基本上说来,JSF的事件可以分成两种类型:阶段事件(Phase Event)和Faces事件(Faces Event)。阶段事件主要用来处理请求生命周期的特定阶段中发生的事件。Faces事件则是负责处理组件事件的。Swing中的事件基本上可以和Faces事件相对应。之所以JSF事件中有阶段事件是因为Web中毕竟通过没有状态的HTTP协议来进行请求和响应,所以使用阶段事件来处理这些问题。
我们先关注一下和Swing事件相对应的Faces事件。Faces事件也可以分成两种类型:值变事件(Value Change Event)和动作事件(Action Event)。值变事件主要关注的是组件属性值的变化(例如展开树节点,改变输入栏中的内容等等)。动作事件主要关注组件的激活(其实就是组件的状态) (例如按钮点击,超链接点击等等)。他们的关系图如下:Phase Event和Faces Event都继承于java.uti.EventObject. ValueChangeEvent和ActionEvent继承于FacesEvent.

使用JSF事件很容易:
  1. 实现接口ValueChangeListener (实现processValueChanged()方法)或者接口ActionListener(实现processAction()方法)。
  2. 使用
    xml 代码
     
    1. <f:valueChangeListener>  
    2. <f:actionListener>  
    等标签在组件上注册这个监听器(通常在页面中配置)。