The Apache Struts framework is probably the web application framework most widely used today; many people wonder how JSF and Struts fit together, or if JSF in fact replaces Struts. I like to look at it from two different angels: how JSF may be used for existing Struts applications and which technologies to pick for a new project.
Before we look at the different options, a brief review of the main differences in how the two technologies separate application logic and presentation logic makes it easier to come to an informed decision. Figure 12-5 illustrates the main interactions.
Figure 12-5. Architecture of Struts versus architecture of JSF
The main components in a typical Struts application are the Struts
servlet, application logic implemented as Struts
Action subclasses accessing business logic objects
implemented as regular Java classes, and JSP pages for presentation.
All requests are targeted to the Struts servlet, which delegates to a
Action subclass identified by parts of
the URL. The
Action subclass does its thing by
pulling input from the request data and saving objects representing
the result in the request or session scope. It then returns a value
that tells the Struts servlet which JSP page to use for the response.
The Struts servlet invokes the selected JSP page, which renders a
response based on the result objects.
In a ...