JSF provides advantages over traditional MVC frameworks like Struts, including custom GUI components, support for different display technologies, simpler configuration and bean definitions. However, JSF also has disadvantages like a steeper learning curve and less transparent operation compared to standard servlets and JSP. Between JSF and Struts, JSF offers more powerful custom components and easier configuration, but Struts has a larger existing user base and more online resources.