table of contents

Jakarta Struts (Action Framework)

Tutorial and Training Materials

This tutorial is derived from Marty Hall's world-renowned live Jakarta Struts training course. Note that the course (and this tutorial) now covers Struts 1.2. The course is usually taught on-site at customer locations, but servlet, JSP, Struts, and JSF training courses at public venues are periodically scheduled for people with too few developers for an onsite course. For descriptions of the various other courses that are available, please see the servlet, JSP, Struts, and JSF training course page. To inquire about a customized training course at your location, please contact Marty at hall@coreservlets.com. Courses on servlets, JSP, JSF, Shale, Hibernate, and Java programming also available.

If you find these free tutorials helpful, we would appreciate it if you would link to us.

Available free for university faculty: The original PowerPoint versions of the tutorials are available free for university faculty in certain cases. Please see instructor usage rules for details.


Intro: Jakarta Struts 1.2 Overview, Pros, Cons, Installation, and Setup

View PDF of Introduction to Struts
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Introduction to Struts
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • struts-blank.zip.
    The struts-blank Web app from the Struts 1.2 distribution, bundled as an Eclipse project. See the tutorial above for details on how to use this as the starting point for your own Struts apps. R-click to download it.

Processing Requests with Action Objects

View PDF of Struts Actions
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Actions
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:


Handling Request Parameters with Form Beans

View PDF of Struts Beans
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Beans
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:


Prepopulating and Redisplaying Input Forms

View PDF of Struts Forms
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Forms
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • signup.zip.
    The signup Web app, used for the examples in this section of the Struts tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • signup-minus-jars.zip.
    The signup Web app with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of signup and then copy all JAR files from struts-blank/WEB-INF/lib to signup/WEB-INF/lib (or use your server's location for shared JAR files).

Using Properties Files (Resource Bundles) and Internationalizing Jakarta Struts Applications

View PDF of Struts Messages
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Messages
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • struts-messages.zip.
    The struts-messages Web app, used for the examples in this section of the Struts tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • struts-messages-minus-jars.zip.
    The struts-messages Web app with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of struts-messages and then copy all JAR files from struts-blank/WEB-INF/lib to struts-messages/WEB-INF/lib (or use your server's location for shared JAR files).

Using DispatchAction and Other Advanced Action Classes

View PDF of Struts Advanced Actions
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Advanced Actions
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • advanced-actions.zip.
    The advanced-actions Web app, used for the examples in this section of the Struts tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • advanced-actions-minus-jars.zip.
    The struts-advanced-actions Web app with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of advanced-actions and then copy all JAR files from struts-blank/WEB-INF/lib to advanced-actions/WEB-INF/lib (or use your server's location for shared JAR files).

Declarative Exception Handling

View PDF of Struts Exceptions
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Exceptions
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • struts-errors.zip.
    The struts-errors Web app, used for the examples in this section of the Struts tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • struts-errors-minus-jars.zip.
    The struts-errors Web app with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of struts-actions and then copy all JAR files from struts-blank/WEB-INF/lib to struts-errors/WEB-INF/lib (or use your server's location for shared JAR files).

Manually Validating User Input

View PDF of Struts Manual Validation
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Manual Validation
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • chooseFormat.zip.
    The four chooseFormatX Web apps, used for the examples in this section of the Strut tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • chooseFormat-minus-jars.zip.
    The four chooseFormatX Web apps, with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of chooseFormat* and then copy all JAR files from struts-blank/WEB-INF/lib to chooseFormatX/WEB-INF/lib (or use your server's location for shared JAR files).

Automatically Validating User Input

View PDF of Struts Automatic Validation
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Automatic Validation
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • orders.zip.
    The orders Web app, used for the examples in this section of the Strut tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • orders-minus-jars.zip.
    The orders Web app with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of orders and then copy all JAR files from struts-blank/WEB-INF/lib to orders/WEB-INF/lib (or use your server's location for shared JAR files).

Composing Pages with Tiles

View PDF of Struts Tiles
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts Tiles
For customization and projection by university instructors. Password-protected; see usage rules for access.

Source Code:

  • e-boats.zip.
    The two e-boatsX Web apps, used for the examples in this section of the Strut tutorial. Note that this file is quite large because it replicates the JAR files from WEB-INF/lib. It will be much faster to download the stripped-down version (see below).
  • e-boats-minus-jars.zip.
    The two e-boatsX Web apps, with the JAR files from WEB-INF/lib removed. If you have the Struts 1.2 version of struts-blank, download this smaller version of e-boats and then copy all JAR files from struts-blank/WEB-INF/lib to e-boatsX/WEB-INF/lib (or use your server's location for shared JAR files).

Using the JSP Standard Tag Library (JSTL) with Jakarta Struts

View PDF of Struts and JSTL
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts and JSTL
For customization and projection by university instructors. Password-protected; see usage rules for access.


Using the JSP 2.0 Expression Language with Jakarta Struts

View PDF of Struts and JSP EL
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Struts and JSP EL
For customization and projection by university instructors. Password-protected; see usage rules for access.


Review/Background Training Materials

Servlet and JSP Review

View PDF of Servlet and JSP Review
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Servlet and JSP Review
For customization and projection by university instructors. Password-protected; see usage rules for access.

Using JavaBeans Components in JSP Pages

View PDF of Using JavaBeans
For learning Jakarta Struts. Free for personal use.

View PowerPoint of Using JavaBeans
For customization and projection by university instructors. Password-protected; see usage rules for access.

The MVC Architecture (Traditional Implementation With RequestDispatcher)

View PDF of MVC
For learning Jakarta Struts. Free for personal use.

View PowerPoint of MVC
For customization and projection by university instructors. Password-protected; see usage rules for access.


Exercises

Practice Exercises

Sample problems used in Marty's Jakarta Struts Training courses.

View PDF of Struts Exercises
For learning Jakarta Struts. Free for personal use.


More Information

Java

JSF (JavaServer Faces)

Servlets & JSP
Ajax, GWT, & JavaScript

Spring, Hibernate, & JPA

Struts