`
iamlibo
  • 浏览: 68810 次
社区版块
存档分类
最新评论

JSF中的事件

阅读更多

JSF提供一个好处就是事件,例如可以对组件的值的改变提供一个 Listener,和Swing有点相象.

下面以实例说明:

为一个组件定义一个侦听器有两种方法:

第一种方法:侦听方法所在类不用实现任何接口。

public void idChange(ValueChangeEvent event) {
System.out.println("ID的值改变了!");
FacesContext.getCurrentInstance().renderResponse();

}

这个方法只需要定义在BEAN中就可以了。接受一个Event参数。

页面中这样写:

<h:inputText value="#{roseBean.rose.id}" valueChangeListener="#{roseBean.idChange}" onchange="this.form.submit()" immediate="true"/>

第二种方法:侦听方法实现javax.faces.event.ValueChangeListener接口。

public class RoseIdChange implements ValueChangeListener {

public void processValueChange(ValueChangeEvent arg0)
throws AbortProcessingException {
System.out.println("change");

FacesContext.getCurrentInstance().renderResponse();
}
}


页面的写法是这样的:

<h:inputText value="#{roseBean.rose.id}" onchange="this.form.submit()" immediate="true">
<f:valueChangeListener type="cn.xiangyunsoft.web.jsf.listener.RoseIdChange" />
</h:inputText>

在这两种方法中的页面代码中都有 immediate="true" 这个属性,它表示为是即时事件。

在处理方法中都有

FacesContext.getCurrentInstance().renderResponse();
表示这个方法处理完成之后直接跳到JSF生命周期的最后一个阶段。

但是这样还有一个问题就是:

如果在BEAN里面有一个list属性,是从数据库里取出来的数据,在页面上经表格的形式体现,每当这个值变事件发生的时候都会从数据库中重得取数据,(当然这个BEAN的scop 是request),这样就多一次访问数据库,如果不是在getList()中直接连接数据,通过其他方法取数放到list中,这个值变事件就不会发生,或发生后表格的数据就没有了。

看来只能用ajax了!


<!----> Technorati : jsf

分享到:
评论

相关推荐

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    ### JSF事件类型 JSF支持多种事件类型,这些事件可以在组件之间或应用程序级别触发。例如: - **组件级事件**:发生在特定UI组件上,如点击按钮或选择下拉框选项。 - **应用程序级事件**:在更广泛的范围内传播,...

    JSF中文教程jsf

    **事件处理** 在JSF中是通过事件监听器实现的。当用户与组件交互时,会触发特定的事件,相应的监听器方法会被调用,从而执行相应的处理逻辑。 **生命周期** 是JSF处理请求的关键过程,包括初始化、恢复视图、应用...

    精通JSF中文教程精通JSF中文教程

    **JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化、事件驱动的方式来构建用户界面。本教程旨在帮助读者深入理解和熟练掌握JSF技术,以便于高效地开发企业级的Web应用。 **1...

    JSF中文教程.zip

    在《JSF中文教程》的.chm文件中,读者可以深入学习到这些概念,通过实例和示例代码了解如何在实际项目中应用JSF。该教程将帮助初学者快速上手JSF,同时为有经验的开发者提供参考,提升他们的JSF开发技能。

    JSF生命周期的事件处理

    在深入了解JSF中的事件处理之前,我们先简要回顾一下JSF的生命周期,这对于理解后续的事件处理逻辑至关重要。JSF的生命周期分为以下五个主要阶段: 1. **恢复视图(Restore View)**:在这个阶段,JSF容器会根据...

    JSF中文教程+JSF参数传递方式

    本教程将深入探讨JSF的核心概念以及如何在JSF应用中传递参数,帮助开发者更好地理解和掌握这一技术。 首先,让我们理解**JSF的基本架构**。JSF的核心组件包括视图、控制器和模型,它们共同构成了MVC(Model-View-...

    jsf 中文帮助文档

    例如,JSF中的数据绑定和事件处理机制都与Java的反射和事件监听器机制密切相关。 在JSF中,**组件树** 是一种核心概念,它是页面所有UI组件的逻辑表示。每个组件都有自己的属性和事件,可以通过EL(Expression ...

    JSF帮助文档

    在这个过程中,JSF框架负责管理组件状态,处理用户事件,并与后端业务逻辑进行交互。 JSF提供了一种声明式编程模型,允许开发者通过XML配置文件(如faces-config.xml)来定义组件、导航规则和转换验证规则。此外,...

    JSF入门(中文pdf)

    在JSF中,UI组件(View)可以直接映射到后端的数据源(Model),并可以通过事件处理(Controller)进行交互。这使得开发者可以更专注于业务逻辑,而无需过多关注底层的HTTP通信细节。 首先,JSF的组件库是其一大...

    JSF包,jsf包,JSF包,jsf包

    **JSF(JavaServer Faces)** 是一种Java平台上的Web应用程序开发框架,它提供了一种组件化和事件驱动的方式来创建用户界面。JSF的核心概念包括组件、事件、渲染器和生命周期,这些元素共同构建了一个强大的MVC...

    jsf中文使用教程jsf中文使用教程

    2. **事件驱动**:用户交互触发事件,JSF会处理这些事件并调用对应的处理方法。 3. **可扩展性**:JSF允许开发者自定义组件和行为,以适应特定需求。 4. **与Java EE集成**:JSF可以与其他Java EE技术如EJB、JPA、...

    ajax4jsf中文用户指南

    - `a4j:ajaxListener`:监听JSF事件并触发Ajax请求。 - `a4j:region`:定义页面上的Ajax作用域。 - `a4j:commandLink` 和 `a4j:commandButton`:替代JSF的`h:commandLink`和`h:commandButton`,支持Ajax操作。 - `a4...

    Event-Handling

    在JavaServer Faces (JSF)框架中,事件处理是一个关键机制,它允许开发者响应用户界面(UI)中的交互事件。本文将深入探讨JSF中的事件处理,主要包括ActionController(行为控制器)与事件监听器如ActionListener和...

    JSF开发介绍JSF开发介绍

    在JSF开发中,开发者可以创建自定义组件,利用JSF的事件处理机制,以及数据绑定功能,将组件与后台bean的数据连接起来。此外,JSF还支持EL(Expression Language)和FacesContext,使得在视图和模型之间传递数据更加...

    JSF Java Server Faces (JSF)框架

    在未来的发展中,有可能所有的J2EE应用服务器都需要支持JSF。 Java Server Faces技术好处  引入了基于组件和事件驱动的开发模式,使开发人员可以使用类似于处理传统界面的方式来开发Web应用程序。提供了行为与...

    JSF中使用BooleanCheckbox实现全选功能

    4. **事件监听**:确保在JSF页面中,主复选框的变化能够触发`onSelectAllChanged`方法。这通常通过`f:ajax`标签实现。 ```xml ``` 5. **标签`源码`和`工具`**:这两个标签可能暗示了文章会分享有关如何阅读和...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    学习这部分,你需要了解如何导入和使用JSF的库,例如`javax.faces.*`和`org.primefaces.*`,以及它们提供的功能,如数据验证、转换器、事件处理等。 4. **Ajax4JSF使用手册**:Ajax4JSF是JSF的一个扩展,它为JSF...

    JSF基础教程 简体中文

    JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态档案,就可以修改 Bean 之间的相依关系。 o Backing Beans o Beans 的组态与设定 o Beans 上的 List, Map 数据转换与...

Global site tag (gtag.js) - Google Analytics