2006-12-18

JSF中的事件类型

关键字: jsf
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>  
    等标签在组件上注册这个监听器(通常在页面中配置)。
评论
lysmart_8 2008-06-29
阶段事件没有弄明白,值改变事件和动作事件都用过
发表评论

您还没有登录,请登录后发表评论

alartin
搜索本博客
最近加入圈子
存档
最新评论
评论排行榜