The basic difference as Hans mentioned is struts is a "application framework" and JSF is a "UI Framework"
In a web application framework like Struts, the interfaces are more kind of "Generic".Struts can recognize only
only one event - "HTTP REQUEST".
In a UI framework, there are many events like "Button clicked","Combo selected" etc.And there are listeners
for each of this event, which will perform different actions based on the event.