Hi can some one tell me what is differences between action and actionlistener in JSF components ? for example an command button has action and ActionListener properties , what is differences between them , when we should use each of them ?
This is covered in chapter 8 - the Faces event model.
Basically the "action" attribute refers to an action method which returns a String from which the Faces navigation model can use to decide whether or not a navigation is necessary based on the value of the string.
typically one uses an action method to execute some code after a button or link is clicked and then possibly navigate based on the outcome of executed code.
An actionlistener method compared to an action method does not return a String. Instead it returns void. It is basically identical to the action method but instead it just executes the code after an action event (button click or link click) but a navigation is not needed.
A good example of actionlistener could be in response to clicking on a checkbox and having the actionlistener code behind it change a visual attribute of a page such as render a component that was not rendered before..
Chapter 8 has exactly this example where I show how you can have a checkbox when clicked render an additional field in an input form.