This article would compare Flex and JSF technologies and would describe the advantages and disadvantages of each technology.
JSF Advantages:
- Doesn't require plug in installation on the client side
- JSF has a standard specification and it has several implementation
- JSF has Open Source implementations which doesn't cost money.
- Changes in the JSP files are immediately shown on the browser, no need to restart the server.
JSF Disadvantages:
- Very complicate to develop because the basic implementation is pretty basic and for complicated UI screens need to have additional component libraries
- Doesn't compatible between different web browsers
Flex Advantages:
- The UI looks much nicer then JSF UI
- Flex looks like more simple to develop rather then JSF
- Compatible between different web browsers
- Flex 2 SDK and Flex Builder 2 for Education are both free
Flex Disadvantages:
- It doesn't has standard specification
- Adobe is the only provider of Flex
- It requires plug in installation on the client side , however this may not be disadvantage since Adobe claims that Flash is installed on more then 99% percent of users.
- If you build a web site which users would need to search in some search engine the search engine would not be able to understand the content of the flash files (search engines can only understand standard html files/pdf files etc')
- Flex based pages takes a lot of time to get loading compare to JSF pages
- Flex Builder 2 costs some money
Both JSF and Flex integrate very well with java.
In summary, if you build an simple enterprise application which requires nice UI I would recommend using Flex, if you build an complicated application which requires good performance or application which is open to all the Internet users I would recommend using JSF.