Struts is an implementation of the Model-View-Controller design pattern. However, you will see elements of several other design patterns as you use Struts. This includes the Front Controller design pattern.
JSF makes it easy to create UIs from a set of predefined components. These components automatically manage their state. JSF also makes it easy for developers to create their own UI components and reuse those components.