jsf

Display Current Date on JSF Page


Is it possible to display the current date (today's) in JSF without using a backing bean?

I have the following code snippet , but it didn't work out.

<div class="leftSide">Today's date #{currentDate}</div>

or

<f:facet name="header">  
<h:outputText value="Today's date" />  
</f:facet>
<h:outputText value="#currentDate">
    <f:convertDateTime pattern="MM/dd/yyyy" type="date" />
</h:outputText>

Solution

  • You could register an instance of java.util.Date as a request scoped bean in faces-config.xml.

    <managed-bean>
        <managed-bean-name>currentDate</managed-bean-name>
        <managed-bean-class>java.util.Date</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
    </managed-bean>
    

    This way it's available as #{currentDate} without the need for a custom backing bean class.


    Update: the JSF utility library OmniFaces has such a bean already registered as #{now}. So if you happen to use OmniFaces already, you can just make use of it directly.

    <h:outputText value="#{now}">
        <f:convertDateTime pattern="MM/dd/yyyy" type="date" />
    </h:outputText>