学习Java-事件窃听器

开发 后端
本文描述学习Java-事件窃听器,以及介绍4种标准事件:值改变事件、动作事件、数据模型事件以及阶段事件。

在编写JSF应用时,集成应用逻辑其实是对那些产生监听器能懂得的事件的组件分配适当的监听器。而不必考虑请求和响应。JSF支持用类似于面向接口的方式开发事件监听器,以及将任意方法注册为事件监听器的能力(只要它具有正确的方法签名)。

共有4种标准事件:值改变事件、动作事件、数据模型事件以及阶段事件。值改变事件是在用户修改组件的值后,由输入控件触发。动作事件在用户激活命令组件(比如按钮)时产生。数据模型事件在数据感知组件选择了一行要处理的数据时产生。阶段事件则在JSF处理HTTP请求时产生。

这些仅仅是框架所定义的标准事件,这并没有限制使用其他类型的事件。第三方或者你自己,都可以容易地支持不同类型的事件。

值改变事件是当用户在输入组件中输入新值时产生的。可以使用值改变事件监听器来处理值。

简单的值变事件代码

  1. <%@ page language="java" pageEncoding="GB18030"%>    
  2. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>    
  3. <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>    
  4. <html>    
  5.     <body>    
  6.         <f:view>    
  7.             <h:form>    
  8.                 <h:inputText valueChangeListener="#{myform.valueChangeProcess}" />    
  9.                 <h:commandButton binding="#{myform.changeB}" rendered="false" value=" 提 交 " />    
  10.             </h:form>    
  11.         </f:view>    
  12.     </body>    
  13. </html>   

Java代码

  1. package djob2008;    
  2.     
  3. import javax.faces.component.UIComponent;    
  4. import javax.faces.component.html.HtmlInputText;    
  5. import javax.faces.event.ValueChangeEvent;    
  6.     
  7. /**   
  8.  * @author    
  9.  * @time Jun 24, 20098:24:24 PM   
  10.  */    
  11. public class Myform {    
  12.  public  UIComponent changeB;    
  13.  public void valueChangeProcess(ValueChangeEvent event){    
  14.      HtmlInputText sender=(HtmlInputText)event.getComponent();    
  15.      sender.setReadonly(true);    
  16.     changeB.setRendered(true);    
  17.  }    
  18. public UIComponent getChangeB() {    
  19.     return changeB;    
  20.     
  21. public void setChangeB(UIComponent changeB) {    
  22.     this.changeB = changeB;    
  23. }    
  24.     
  25. }  

【编辑推荐】

  1. 在Java类中灵活使用Static关键字
  2. 自学Javabean迅速成为Java高手
  3. Java之父:我们看中的并非Java语言,而是JVM
  4. 程序员必备Java API
  5. 成为Java高手需要注意的25个学习目标
责任编辑:佚名 来源: 电子工业出版社
相关推荐

2017-09-18 08:52:34

2017-08-08 16:50:59

2009-10-25 11:35:20

手机安全

2011-11-28 09:49:49

2013-07-25 10:15:51

2018-03-14 11:13:35

Web服务器Nginx

2023-05-05 21:51:47

2009-08-13 22:20:25

2009-07-24 20:11:17

2020-05-07 21:29:02

光纤窃听传输

2009-08-03 16:00:12

2010-10-27 16:29:57

2009-11-06 10:21:52

赛门铁克手机木马安全

2011-09-08 14:22:06

2017-01-05 09:07:25

JavaScript浏览器驱动

2012-03-26 11:04:54

手机安全窃听

2011-08-18 10:20:04

2023-09-18 15:12:47

服务卡片ArkTS

2017-06-12 10:31:17

Redis源码学习事件驱动

2014-01-02 16:45:02

点赞
收藏

51CTO技术栈公众号