Book Image

PrimeFaces Beginner's Guide

By : Siva Prasad Reddy Katamreddy
Book Image

PrimeFaces Beginner's Guide

By: Siva Prasad Reddy Katamreddy

Overview of this book

PrimeFaces is a lightweight UI component framework for JSF based applications. PrimeFaces is very easy to use because it comes as a single JAR file and requires no mandatory XML configuration. It provides more than 100 UI Components and an in-built AJAX support. It also provides theme support for UI components with more than 30 themes out-of-the-box. With PrimeFaces, developers can create rich user interfaces very easily.PrimeFaces Beginners Guide is a practical, hands-on guide that provides you with clear step-by-step exercises,that will help you to learn and explore the features of PrimeFaces.PrimeFaces Beginners Guide starts by showing you how to install PrimeFaces, create sample forms, and perform validations and then looks at various commonly used PrimeFaces utility components. Next, you will look into various basic text input components like form controls, Calendar, AutoComplete, and Rich Text Editor. Then you will learn about advanced UI components such as DataTables, panels, menus,and charts. Throughout the chapters we will be building a sample web application using PrimeFaces progressively that will give you a hands-on experience on using PrimeFaces effectively.You will learn how to create complex layouts using accordion panels, tab views, sophisticated menu navigations, breadcrumbs and much more. You will also learn how to display data using DataTable with pagination, filters, and lazy loading, and how to export data to Excel or PDF features. You will learn how to represent data in various formats like trees, charts, and TagCloud. You will also learn how to build an application supporting multiple themes.With this PrimeFaces Beginner's Guide , you will learn how to use PrimeFaces easily and effectively.
Table of Contents (20 chapters)
PrimeFaces Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
3
Using PrimeFaces Common Utility Components
Index

Time for action – using the poll component to display the current time


Let's display live time by polling server time for every second and display it using the poll component.

  1. Create poll.xhtml with a poll component to display currentTime as follows:

    <h:form>
      <p:outputLabel value="Current Time:" /> <p:outputLabel id="currentTime" value="#{serverTimeBean.time}"/>
      <p:poll interval="1" listener="#{serverTimeBean.updateTime()}" update="currentTime"/>
    </h:form>
  2. Create ServerTimeBean.java managed bean with the updateTime() method to set the currentTime value as follows:

    @ManagedBean
    @RequestScoped
    public class ServerTimeBean 
    {
      private String time;
      public void setTime(String time) {
        this.time = time;
      }
      public String getTime() {
        return time;
      }
      public void updateTime() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        this.time = sdf.format(new Date());
      }
      
    }

What just happened?

We have used the <p:poll> component to call listener method updateTime() on ServerTimeBean for every second by specifying interval="1", and updated the view to display current time using AJAX.

The poll component provides the following attributes, which provides additional control on its behavior:

AttributeName

Description

onstart

JavaScript handler to execute before AJAX request begins.

oncomplete

JavaScript handler to execute when AJAX request is completed.

onsuccess

JavaScript handler to execute when AJAX request succeeds.

onerror

JavaScript handler to execute when AJAX request fails.

autoStart

In autoStart mode, polling starts automatically on page load, to start polling on demand set it to false.

stop

Stops polling when true.

Controlling the polling process using external triggers

Sometimes, we may want to have control on when to start/stop the polling process, stop polling based on some criteria, and so on. The PrimeFaces poll component provides these features with additional attributes giving you full control on polling process.

For example, we want to start polling when the Start button is clicked, and stop polling when the Stop button is clicked.