- PrimeFaces Beginner's Guide
- K. Siva Prasad Reddy
- 212字
- 2021-07-21 17:59:01
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.
- Create
poll.xhtml
with a poll component to displaycurrentTime
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>
- Create
ServerTimeBean.java
managed bean with theupdateTime()
method to set thecurrentTime
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:
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.