`

JSF Action/Event/ValueChange Listeners

阅读更多

Action listeners

– Attached to buttons, hypertext links, or image maps
– Automatically submit the form

- when to use: business method/handler

 

jsf page:

<h:commandButton action="#{bean.doSomething}"/>

 

jsf2 backing bean:

public String doSomething() {

    ...

    return "somePage.xhtml";

}

 

 

Event listeners

- are used to handle events that affect only the user interface
- Typically fire before beans are populated and validation is performed
- Use immediate="true" to designate this behavior
- Form is redisplayed after listeners fire
- No navigation rules apply

- All exceptions/errors swallowed

- When to use: Use actionListener if you want have a hook before the real business action get executed, e.g. to log it, and/or to set an additional property (by <f:setPropertyActionListener>), and/or to have access to the component which invoked the action (which is available by the  ActionEvent argument). 

 

jsf page:

<h:commandButton actionListener="#{bean.doSomething}" immediate="true"/>

 

jsf2 backing bean: takes an ActionEvent parameter and return void

public void doSomething(ActionEvent event) {

    ...

}

 

Another example from StackOverflow BalusC:

<h:commandLink value="submit" actionListener="#{bean.listener1}" action="#{bean.submit}">
    <f:actionListener type="com.example.SomeActionListener" />
    <f:setPropertyActionListener target="#{bean.property}" value="some" />
</h:commandLink>

The above example would invoke in this order:

Bean#listener1()SomeActionListener#processAction()Bean#setProperty()and Bean#submit()


Value change listeners
- Attached to radio buttons, comboboxes, list boxes, checkboxes, textfields, etc.
- Require onclick="submit()" or onchange="submit()" to submit the form
- Test carefully on all expected browsers

 

jsf page:

<h:selectBooleanCheckBox valueChangeListener="#{bean.doSomething}" onclick="submit()"/>

 

jsf2 backing bean:

public void doSomething(ValueChangeEvent event) {

    Boolean flag = (Boolean) event.getNewValue();

    ...

}

 

Reference: http://courses.coreservlets.com/Course-Materials/pdf/jsf/jsf2/JSF2-Event-Handling.pdf

分享到:
评论

相关推荐

    jsf/jstl/MyFaces包

    在"jsf/jstl/MyFaces包"中,包含的JSTL包意味着你可以直接在JSF应用中使用JSTL的功能。这使得开发者能够将业务逻辑与视图层更好地分离,提高代码的可读性和可维护性。 将这些包放入项目的`lib`目录,或者将其配置到...

    jsf实现登录功能

    JSF(JavaServer Faces)是Java平台上用于构建Web应用程序的一种技术框架,它提供了一种声明式的方法来创建用户界面,并且处理与后端数据模型的交互。在这个"jsf实现登录功能"的例子中,我们将探讨如何利用JSF来构建...

    jsf1.2 source code

    本文将深入探讨JSF 1.2的源码,重点关注`jsf-api`、`jsf-ri`、`jsf-tools`和`jsf-doc`这四个关键部分。 ### 1. `jsf-api` `jsf-api`包含了JSF框架的公共接口和类,这些定义了开发者如何在他们的应用程序中与JSF...

    jsf的初步使用(包括jsf框架的引入、用户登录、自定义表单验证、valueChangeEvent值变更事件处理做的级联下拉框,内有jsf的jar包)

    &lt;f:ajax event="valueChange" listener="#{bean.onCountryChange}" render="city" /&gt; &lt;f:selectItems value="#{bean.countries}" var="c" itemValue="#{c}" itemLabel="#{c}" /&gt; &lt;/h:selectOneMenu&gt; ...

    问题-求助-jsfdemo

    新手jsf问题。http://localhost:8080/jsfdemo/userLogin.faces 出现 The requested resource (/jsfdemo/userLogin.faces) is not available.

    jsf facelet 的用法

    xmlns:ui="http://java.sun.com/jsf/facelets"&gt; &lt;title&gt;Base Template&lt;/title&gt; &lt;/head&gt; &lt;ui:insert name="header"&gt;Default Header&lt;/ui:insert&gt; &lt;ui:insert name="content"&gt;Default Content&lt;/ui:insert&gt; ...

    jsf in Action源码(1-6章)

    《JSF in Action》是JavaServer Faces技术的一本经典实战书籍,涵盖了从基础到高级的全方位内容。书中源代码的前六章包含了JSF的基本概念、组件使用、生命周期、事件处理、表单验证以及与后端数据库交互等多个关键...

    JSF+HTML标签总结

    例如,`&lt;%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%&gt;`导入了JSF核心库,`prefix="f"`定义了前缀,使得我们可以使用`&lt;f:...&gt;`来调用该库中的标签。 1. `h:inputTextarea`是JSF中的文本区域组件,其...

    jsp/jsf和XML/XSLT技术整合的精华

    jsp/jsf和XML/XSLT技术整合的精华 随着JSTL 1.0,JSP™ 2.0和JSF 1.0技术 的介入,JSP™技术已经成为一个成熟的主 流表现层技术,但是它还没有提供足够的灵 活性和模块化 。 服务器端Java™技术的发展 • 最新的...

    jsf in action 中文版

    2. **JSF in Action中文版(Sample).pdf** - 这可能是书的第一部分或样章,包括JSF的基本概念、安装配置、生命周期、页面导航、组件库(如PrimeFaces或Mojarra)的使用,以及如何创建基本的JSF应用程序等内容。...

    JSF in Action英文版(含源代码)

    《JSF in Action》这本书深入介绍了JSF的核心概念和技术,是学习JSF的宝贵资源。 **1. JSF架构与组件模型** JSF的核心是一个组件模型,它允许开发者使用预定义的UI组件(如按钮、表单、文本框等)构建页面。这些...

    《JSF in Action》PDF

    《JSF in Action》这本书是JSF技术的详细指南,旨在帮助读者深入理解和应用JSF框架。 在书中,你可以了解到以下关键知识点: 1. **JSF基本概念**:JSF的核心组件,如UIComponent、FacesContext和Lifecycle,以及...

    JSF/JDBC试题管理系统 netbeans & java DB

    综上所述,"JSF/JDBC试题管理系统 netbeans & java DB"是一个使用现代Web技术构建的教育软件,它结合了前端的JSF、CSS和JavaScript以及后端的JDBC和Java DB,通过NetBeans IDE进行开发,实现了用户登录、试题管理等...

    jsf2.0详细文档

    ### JSF 2.0 开发配置与应用详解 #### 一、概述 JavaServer Faces (JSF) 是一种用于构建基于 Java 的企业级 Web 应用程序的标准框架。JSF 2.0 作为该技术的一个重大更新版本,不仅在功能上有了显著提升,还在易用...

    JSF in action jsf宝典

    **JSF in Action** 和 **jsf宝典** 可能是关于JSF技术的详细教程或参考书籍,旨在帮助开发者深入理解JSF的工作原理和最佳实践。这类资源通常会涵盖JSF的核心概念、组件、生命周期、事件处理、表单验证、国际化、错误...

    JSF-api-1.2_14-sources.jar

    JSF-api-1.2_14-sources.jar,提供了jsf使用时的多种内部类。

    JSF H 标签在HTML中的对应元素

    JSF(JavaServer Faces)是一种用于构建Web应用程序的Java框架,它提供了丰富的组件库来简化UI开发。在JSF中,H标签是一组与HTML元素相对应的UI组件,它们被设计用来创建用户界面并与服务器进行交互。这些H标签允许...

    jsf/RichFaces组件

    RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。RichFaces组件简介,复合组件,日期控件,Ajax标签, 轻松实现。

Global site tag (gtag.js) - Google Analytics