在编写JSF应用时,集成应用逻辑其实是对那些产生监听器能懂得的事件的组件分配适当的监听器。而不必考虑请求和响应。JSF支持用类似于面向接口的方式开发事件监听器,以及将任意方法注册为事件监听器的能力(只要它具有正确的方法签名)。
共有4种标准事件:值改变事件、动作事件、数据模型事件以及阶段事件。值改变事件是在用户修改组件的值后,由输入控件触发。动作事件在用户激活命令组件(比如按钮)时产生。数据模型事件在数据感知组件选择了一行要处理的数据时产生。阶段事件则在JSF处理HTTP请求时产生。
这些仅仅是框架所定义的标准事件,这并没有限制使用其他类型的事件。第三方或者你自己,都可以容易地支持不同类型的事件。
值改变事件是当用户在输入组件中输入新值时产生的。可以使用值改变事件监听器来处理值。
简单的值变事件代码
- <%@ page language="java" pageEncoding="GB18030"%>
- <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
- <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
- <html>
- <body>
- <f:view>
- <h:form>
- <h:inputText valueChangeListener="#{myform.valueChangeProcess}" />
- <h:commandButton binding="#{myform.changeB}" rendered="false" value=" 提 交 " />
- </h:form>
- </f:view>
- </body>
- </html>
Java代码
- package djob2008;
- import javax.faces.component.UIComponent;
- import javax.faces.component.html.HtmlInputText;
- import javax.faces.event.ValueChangeEvent;
- /**
- * @author
- * @time Jun 24, 20098:24:24 PM
- */
- public class Myform {
- public UIComponent changeB;
- public void valueChangeProcess(ValueChangeEvent event){
- HtmlInputText sender=(HtmlInputText)event.getComponent();
【编辑推荐】