Dealing with Struts Applications and JSF

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.

Architecture of Struts versus architecture of JSF
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 specific 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 ...

Get JavaServer Faces now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.