Prepare Interview

Exams Attended

Mock Exams

Make Homepage

Bookmark this page

Subscribe Email Address

RichFaces Interview Questions and Answers

Freshers / Beginner level questions & answers

Ques 1. What is RichFaces?

RichFaces is a JSF component library that consists of two main parts: AJAX enabled JSF components and the CDK (Component Development Kit). RichFaces UI components are   divided into two tag libraries a4j: and rich:. Both tag libraries offer out-of-the-box AJAX enabled JSF components. The CDK is a facility for creating, generating and testing you own rich JSF components.

  • A full set of AJAX enabled components in two libraries
    • a4j: page centric AJAX controls
    • rich: self contained, ready to use components
  • Client-side validation, expanding JSR 303 Bean Validation all the way to the browser.
  • Advanced queueing to match the high performance requirements of real world enterprise applications.
  • Push component upgrades including JavaMessaging Service (JMS) integrations, and various transport mechanisms based on browser support.
  • Our own Component Development Kit (CDK).
  • Comprehensive documentation covering development best practices, and component details.
  • Detailed and automated testing facilities for components, actions, listeners, and pages.
  • Broad cross-browser support
  • Large and active community at its foundation!!

Is it helpful? Add Comment View Comments
 

Ques 2. What are the basic configurations of web.xml for Rich Faces?

Configuration of web.xml while you are using RichFaces in your application:

    <context-param>
      <param-name>org.richfaces.CONTROL_SKINNING</param-name>
      <param-value>enable</param-value>
    </context-param>
    <context-param>
        <param-name>org.richfaces.LoadStyleStrategy</param-name>
        <param-value>ALL</param-value>
    </context-param>
    <context-param>
        <param-name>org.richfaces.LoadScriptStrategy</param-name>
        <param-value>ALL</param-value>
    </context-param>
    <filter>
        <display-name>RichFaces Filter</display-name>
        <filter-name>richfaces</filter-name>
        <filter-class>org.ajax4jsf.Filter</filter-class>
        <init-param>
            <param-name>maxRequestSize</param-name>
            <param-value>999999999</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>richfaces</filter-name>
        <servlet-name>Faces Servlet</servlet-name>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>

Is it helpful? Add Comment View Comments
 

Ques 3. Give some examples of RichFaces Components.

Some components of RichFaces:
<rich:panel>
<rich:dataTable>
<rich:toolTip>
<rich:modalPanel>
<rich:separator>
<rich:spacer>
<rich:togglePanel>
<rich:tabPanel>
<rich:collapsiblePanel>
<rich:tooltip>
<rich:fileUpload>
<rich:calendar>
<rich:select>
<rich:tree>

Is it helpful? Add Comment View Comments
 

Ques 4. Give some examples of a4j components.

Some examples of a4j components:

  • <a4j:commandLink>
  • <a4j:commandButton>
  • <a4j:outputPanel>
  • <a4j:region>
  • <a4j:mediaOutput>
  • <a4j:queue>

Is it helpful? Add Comment View Comments
 

Ques 5. What is a4j:commandLink in RichFaces?

The a4j:commandLink combines the standard h:commandLink with our own a4j:ajax. This not only reduces typing, but also inherits all a4j:ajax special options.

<a4j:commandLink value="#{constants.Label_DateUploaded}" action="#{handler.tableHeaderListener}" ajaxSingle="true" reRender="claimDocTable" onclick="loadClaimDocs()" styleClass="tableHeaderTxt" oncomplete="completeClaimRender()">
       <f:setPropertyActionListener target="#{handler.sortField}" value="#{constants.Label_DateUploaded}"/>                                            
 </a4j:commandLink>

Is it helpful? Add Comment View Comments
 

Ques 6. What is rich:tooltip in RichFaces?

The rich:tooltip component creates a small non-modal pop-up that can be used to display additional information for nearly anything on the page.


<rich:toolTip id="ttBtnUploadSelectedDoc" for="helpBtnUploadSelectedDocID" layout="block">
        <h:outputLabel styleClass="tooltipSpan">Use this to upload the documents selected for upload and their document properties to the document repository.<p>Shortcut: CTRL+SHIFT+U</p></h:outputLabel>
</rich:toolTip>

Is it helpful? Add Comment View Comments
 

Intermediate / 1 to 5 years experienced level questions & answers

Ques 7. How to pass parameters to a4j:commandButton?

See the example to pass parameters to a4j command button:

<a4j:commandButton ajaxSingle="true" value="Update" reRender="name, job,
            out"  status="commonstatus">
            <a4j:actionparam name="n" value="Mark Joe"  assignTo="#{userBean.name}" />
            <a4j:actionparam name="j" value="WithoutBook"  assignTo="#{userBean.job}" />
</a4j:commandButton>
a4j:actionparam is the name by which you can get the value in your Handler/Bean.

Is it helpful? Add Comment View Comments
 

Ques 8. How to send and ajax request?

There are different ways to send Ajax requests from your JSF page. For example you can use <a4j:commandButton>  ,  <a4j:commandLink><a4j:poll>   or  <a4j:support>  tags or any other.
All these tags hide the usual JavaScript activities that are required for an  XMHTTPRequest object building and an Ajax request sending. Also, they allow you to decide which components of your JSF page are to be re-rendered as a result of the Ajax response (you can list the IDs of these components in the  "reRender"  attribute).

Is it helpful? Add Comment View Comments
 

Ques 9. How to upload files in richfaces?

Using rich:fileUplaod.

rich:fileUpload is a component which provides files upload functionality and extends functionality of standard input with type=file.
We can have different characteristics with this component like: allowed file types, maximum files quantity, and immediate upload.
It supports immediate upload as soon as a file is selected with this component.
<rich:fileUpload  id="fileUploadId"
 autoclear="true"
 uploadListClass="uploadList"
 fileEntryClass="fileEntry"
 allowFlash="auto"
 styleClass="richFileUpload"
 fileUploadListener="#{handler.documentUpload}"
 maxFilesQuantity="#{constants.FILE_UPLOADLIMIT}"
 required="true"
 immediate="true"
 listHeight="1px"
 listWidth="71px"
 onupload="onFileUploadClick();"
 addControlLabel="#{constants.Label_Browse}"
 immediateUpload="true"
 noDuplicate="true"
 onadd="addFileListener(event)">
<a4j:support event="onuploadcomplete" immediate="true" reRender="hiddenVal,docTableId,uploadErrorGrid,docSelectedMsgID,exceptionMessageGrid"/>
</rich:fileUpload>

Is it helpful? Add Comment View Comments
 

Ques 10. What is a4j:param in RichFaces?

The a4j:param component extends the regular f:param tag. The primary extension is the ability to assign a value to a property on a managed bean directly using the assignTo attribute. Using this feature you can update model values without invoking a single line code.

<a4j:commandButton value="Update Name" render="rep">
    <a4j:param value="WithoutBook" assignTo="#{bean.name}" />
</a4j:commandButton>

Is it helpful? Add Comment View Comments
 

Ques 11. What is a4j:status in RichFaces?

The a4j:status component is an indicator of an Ajax request. It has two states: start and stop. The start state indicates that an Ajax request is in progress. When an Ajax Response is returned, the component switches to the stop state. Give a loading progress on a ajax call:


<rich:modalPanel id="statusModalPanelId" autosized="true" resizeable="false">

        <h:graphicImage  value="/views/images/loading.gif"/>

        <a4j:status id="statusId" onstop="Richfaces.hideModalPanel('statusModalPanelId');">

                <f:facet name="start"></f:facet>

        </a4j:status>

 </rich:modalPanel>

Is it helpful? Add Comment View Comments
 

Ques 12. What is rich:messages in RichFaces?

rich:messages is an extension for a standard h:messages component. In addition to what the standard component provides, rich:messages:


<rich:messages ajaxRendered="true" />

Is it helpful? Add Comment View Comments
 

Ques 13. What is rich:dataGrid in RichFaces?

The rich:dataGrid component accepts the same data sources as other iteration components and renders them in a grid format, the same way as the h:PanelGrid component does for in-line data. To define the grid's properties and styles, use the same definitions as for the h:panelGrid component.


<rich:dataGrid value="#{bean.allEmployees}" var="emp" columns="3" elements="9" width="600px" border="0">
      <rich:panel bodyClass="pbody">
       <f:facet name="header">
               <h:outputText value="#{emp.name} #{emp.code}"></h:outputText>
          </f:facet>
          <h:panelGrid columns="2">
               <h:outputText value="Salary:" styleClass="label"></h:outputText>
Is it helpful? Add Comment View Comments
 

Ques 14. What is rich:calendar in RichFaces?

The rich:calendar component allows you to select a date using a monthly calendar widget. It is possible to use the component in a popup or inline mode. In popup mode the calendar is initially rendered as an input for date with a button on the right side to trigger the popup. For inline mode, the monthly calendar is rendered on the page initially.


<rich:calendar value="#{calendarBean.dateSelected}" id="calendar" locale="#{calendarBean.locale}" popup="#{calendarBean.popup}" datePattern="#{calendarBean.pattern}" showApplyButton="#{calendarBean.showApply}" cellWidth="24px" cellHeight="22px" style="width:200px" disabled="#{calendarBean.disabled}">
</rich:calendar>

Is it helpful? Add Comment View Comments
 

Experienced / Expert level questions & answers

Ques 15. What is <a4j:support> tag?

Sends an AJAX request based on a DHTML event supported by the parent component.  In this example, the AJAX request will  be triggered after the user types a character in the text box:

<h:inputText value="#{document.docOrigtor}" id="docClaimOrigId" binding="#{handler.docOrig}">
  <a4j:support actionListener="#{handler.createDocumentName}" event="onkeyup" reRender="docId"/>
</h:inputText>
Here, on keyup event it will call handler.createDocumentName method with ajax call and rendering docId value.

Is it helpful? Add Comment View Comments
 

Ques 16. How to control traffic in RichFaces?

Controlling traffic can be done using Queues mechanism.
Queues can be defined using <a4j:queue../>
3 types of queues are there: Named, Unnamed, and Global queue.

Is it helpful? Add Comment View Comments
 

Ques 17. How to keep a managed bean between requests?

 The bean class should be implemented by Serializable.

Is it helpful? Add Comment View Comments
 

Ques 18. How to different skins are runtime?

We can define an applications skin with EL expression like this:
Deine a session scoped skinBean and manage its currentSkin  property at runtime with your skin names values.  Every time a page is rendered, RichFaces will resolve the value in #{skinBean.currentSkin} to get the current skin.  Changing Skins should not be done via AJAX but with a full page refresh. A full page refresh will ensure that all CSS links are correctly updated based on the new skin.

Is it helpful? Add Comment View Comments
 

Ques 19. Tell me about a4j:outputPanel and ajaxRendered?

"ajaxRendered"  attribute of the  <a4j:outputPanel>  set to "true" allows to define the area of the page that will be re-rendered even if it is not pointed in the reRender attribute explicitly. It might be useful if you have an area on a page that should be updated as a response on any Ajax request.

Is it helpful? Add Comment View Comments
 

Ques 20. What is limitToList attribute?

"limitToList"  attribute allows to dismiss the behavior of the  <a4j:outputPanel>   "ajaxRendered" attribute.
limitToList = "true" means to update only the area(s) that mentioned in the "reRender"  attribute explicitly. All output panels with ajaxRendered="true" is ignored.

Is it helpful? Add Comment View Comments
 

Ques 21. What is the use of eventsQueue?

Attribute "eventsQueue" defines the name of the queue that will be used to order upcoming Ajax requests. By default, RichFaces does not queue Ajax requests. If events are produced simultaneously, they will come to the server simultaneously. JSF implementations (especially, the very first ones) does not guaranty that the request that comes first will be served or passed into the JSF lifecycle first. The order how the server-side data will be modified in case of simultaneous request might be unpredictable. Usage of eventsQueue attribute allows to avoid possible mess.
The next request posted in the same queue will wait until the previos one is not processed and Ajax Response is returned back if the  "eventsQueue"  attribute is defined.
In addition, RichFaces starts to remove from the queue "similar" requests. "Similar'"requests are the requests produced by the same event.

Is it helpful? Add Comment View Comments
 

Ques 22. How to handle request errors and session expire on client side?

Given an example below:
A4J.AJAX.onError = function(req, status, message){
    window.alert("Custom onError handler "+message);
}
A4J.AJAX.onExpired = function(loc, expiredMsg){
if(window.confirm("Custom onExpired handler "+expiredMsg+" for a location: "+loc)){
      return loc;
    } else {
     return false;
    }
}

Is it helpful? Add Comment View Comments
 

Ques 23. What is a4j:ajax?

a4j:ajax is one of our core behaviors, extending the base JSF 2.0 f:ajax tag. This tag triggers an Ajax request when the specified parent event is triggered.

<h:inputText value="#{userBean.name}">
    <a4j:ajax event="keyup" render="out" />
</h:inputText>
<h:outputText value="#{userBean.name}" id="out" />

Is it helpful? Add Comment View Comments
 

Ques 24. What is a4j:actionListener in RichFaces?

Use a4j:actionListener to register an ActionListener class on a parent action component. Multiple listener methods can be registered on an action components in this way.

The a4j:actionListener tag differs from the standard JSF tag in that it allows the listener to be attached in any of three ways:

  1. By listener method, using the listener attribute.
  2. By listener class, using the type attribute.
  3. By object binding, using the binding attribute.
<h:commandButton value="Update">
    <a4j:actionListener listener="#{bean.actionMethod}"/>
    <f:ajax render="messages"/>
</h:commandButton>

Is it helpful? Add Comment View Comments
 

Ques 25. What is a4j:jsFunction in RichFaces?

The a4j:jsFunction component creates a JavaScript function that allows you to send JSF Ajax requests from any JavaScript. You define the Ajax and JSF properties just like a4j:ajax, or a4j:commandButton, and a4j:jsFunction creates the JavaScript for you. The component sends a request using the standard JSF mechanisms. Note that this means a JSF form is required.

The following example shows how to use a4j:jsFunction to create a function named updateName. This is then called on mouseover of the different names. This triggers the full round trip Ajax request and renders the updated name.

<span onmouseover="updateAddress('WithoutBook')" onmouseout="updateAddress('')">WithoutBook</span>

<a4j:jsFunction name="updateAddress" render="showAddress">
    <a4j:param name="address" assignTo="#{bean.address}" />
</a4j:jsFunction>

Is it helpful? Add Comment View Comments
 

Ques 26. What is rich:tree in RichFaces?

The rich:tree component renders a tree control on the page. The most important tree features include the following:

  • Native support for Ajax operations
  • Support for ajax, client, and server switch types
  • Selection capabilities
  • Flexible look and feel
<rich:tree id="tree" nodeType="#{node.type}" var="node" value="#{bean.rootNodes}" toggleType="client" selectionType="ajax" selectionChangeListener="#{bean.selectionChanged}">
      <rich:treeNode type="country">#{node.name}</rich:treeNode>
      <rich:treeNode type="company" iconExpanded="/images/ctry.gif" iconCollapsed="/images/tree/disc.gif">#{node.name}</rich:treeNode>
      <rich:treeNode type="cd" iconLeaf="/images/tree/cd.gif">
           #{node.artist} - #{node.name} - #{node.year}
</rich:treeNode>
Is it helpful? Add Comment View Comments
 

Most helpful rated by users:

Related interview subjects

Core Java interview questions and answers - Total 306 questions
Tomcat interview questions and answers - Total 16 questions
Apache Wicket interview questions and answers - Total 26 questions
Java Applet interview questions and answers - Total 29 questions
JAXB interview questions and answers - Total 18 questions
JMS interview questions and answers - Total 64 questions
Log4j interview questions and answers - Total 35 questions
Struts interview questions and answers - Total 84 questions
RMI interview questions and answers - Total 31 questions
Apache Camel interview questions and answers - Total 20 questions
JDBC interview questions and answers - Total 27 questions
Java 11 interview questions and answers - Total 24 questions
JPA interview questions and answers - Total 41 questions
EJB interview questions and answers - Total 80 questions
GWT interview questions and answers - Total 27 questions
Kotlin interview questions and answers - Total 30 questions
Glassfish interview questions and answers - Total 8 questions
Google Gson interview questions and answers - Total 8 questions
JSP interview questions and answers - Total 49 questions
J2EE interview questions and answers - Total 25 questions
Apache Tapestry interview questions and answers - Total 9 questions
Java Swing interview questions and answers - Total 27 questions
Java Mail interview questions and answers - Total 27 questions
Hibernate interview questions and answers - Total 52 questions
JSF interview questions and answers - Total 24 questions
Java 8 interview questions and answers - Total 30 questions
Java 15 interview questions and answers - Total 16 questions
JBoss interview questions and answers - Total 14 questions
Web Services interview questions and answers - Total 10 questions
RichFaces interview questions and answers - Total 26 questions
Servlets interview questions and answers - Total 34 questions
Java Beans interview questions and answers - Total 57 questions
Spring Boot interview questions and answers - Total 50 questions
JUnit interview questions and answers - Total 24 questions
Spring Framework interview questions and answers - Total 53 questions
Java Design Patterns interview questions and answers - Total 15 questions
©2023 WithoutBook