Java Server Faces web application framework has its own pros and cons. It needs more time to mature .In my experience most of the web applications do similar operations like display grids for showing data list with paging and sorting support , add data form, updating data, deleting data (Basically CRUD operations) uploading and downloading streams etc., with its business logic.
I personally feel jsf provides rapid development but limits you in many cases. I used rich faces library for
I made the following observations after using jsf
Nothing happened" problems. Some times validation error occurs without any reason on the combo box.
Doesn’t report meaningful, useful error messages.
Doesn’t Provide Exception handler support like struts.
Hard to use JavaScript with jsf.
No proper display table with paging and sorting support like display tags.
Too many backing beans in session.
Difficult to use jstl with jsf expression language and it creates problems in complex logics.
Cannot send direct request to backing beans where it decides where to go like struts actions. (Sometimes we need to go to the action first and then action decide which jsp will be shown ). I didn’t find this functionality in jsf.