nTier's Jakarta Struts training course shows JSP and servlet programmers how to build "Model-2" Web applications using the Jakarta Struts project from Apache. Students learn the Struts architecture and see how it captures a great deal of pre-existing best practice in Web application development. They build applications from scratch using the Struts 1.1 code base, advancing through actions and action mappings, form beans, and request forwarding. They use relational data at the model layer and learn to configure JDBC data sources under Struts. Throughout, the course emphasizes the great facility in Struts of using XML declarations to replace boilerplate Java coding. The course then shifts from these controller techniques to a focus on presentation. Students learn to use various libraries of custom JSP tags: the JSP Standard Tag Library (which supersedes a number of Struts tags), Struts HTML tags for form-building and validation, and the Tiles library for robust and reusable page layouts. Two chapters near the end of the course treat issues of effective Struts development: one focuses on "under the hood" coding techniques and one on best practices at a design level. By the end of the course, students are building complex, internationalized Web applications that validate user input, handle error conditions gracefully, and make best use and reuse of control and presentation logic through actions, form beans, validators, business and persistence JavaBeans, and Tiles.
The course software also includes an optional overlay of workspace and project files to support use of the Eclipse IDE in the classroom. (This requires that the instructor be experienced in use of Eclipse and able to walk students through basic tasks in the IDE.)
Understand and implement MVC
Use Struts actions and action mappings to take control of HTTP requests/responses.
Manage HTML form input and output with form beans, and use these beans to simplify data handling in the controller.
Use persistent data in a Struts application with JDBC.
Use JSTL and Struts custom tags to build robust and reusable JSP presentation logic.
Support multiple client locales with various internationalization techniques.
Define validation rules for input forms, and provide clear user feedback.
Build complex presentations using decoupled, reusable tiles, screens and layouts.
Struts Training Prerequisites
Java programming experience is required; we're happy to help you assess your team's skills as preparation for this course. Students should be comfortable with HTML, JSP, Servlets and basic XML.
Struts Architecture MVC and Model 2
Command Pattern
Jakarta Struts
More XML, Less Java!
Action Mappings
JavaBeans in Struts
Working with Forms
Validation
Relational Models Presentation
Technology Tiles
Action Mappings
Command Pattern for Web Applications
ActionServlet Action
ActionMapping
Struts Configuration
Selecting a Forward
Global Forwards
Forwarding Actions
Other Action
Subtypes
Declarative Exception Handling
Forms
Working with HTML Forms
What Not To Do
Action Forms
Relationship to Input
Relationship to Actions
Relationship to the Model
Relationship to Output
DynaActionForm and Map-Backed Forms
Validation
Coarse-Grained Form Beans
Relational Data
JDBC Drivers
DriverManager (JDBC 1.0)
DataSource (JDBC 2.0)
Connection Statement
ResultSet
The Struts Data-Source Manager
Multi-Tier Design
Business Logic Beans
Persistence Logic EJB
Struts Tag Libraries
Building View Components
Struts Tag Libraries Attributes
Building Forms et. al.
Forms and Form Beans
Scope and Duration of Form Data
Managing Hyperlinks Error Messages
Logic Tags
The JSP Standard Tag Library
JSTL Overview
JSP Expression Language
Core Tags
Formatting Tags
XML Tags
SQL Tags
Mixing JSTL, EL, Scripts and Actions
Internationalization and Localization
i18n in Java
Locale ResourceBundle
i18n in Actions
i18n in JSTL
i18n in Validation
Input Validation
Validation in Web Applications
Validation in Struts
The Struts Validator Plug-In
Validating ActionForm Subtypes
Configuring Validation
Validators
Rules
Is Necessary?
Reporting Errors
Multi-Page Validation
Client-Side Validation
Limitations on the Client Side
Implementing a Validator
Implementing ActionForm.validate
Under the Hood
Global Objects and Keys
Modules
ActionServlet, RequestProcessor, ExceptionHandler
Struts Configuration in Depth
The org.apache.struts.config Package
Plug-Ins
Logging with Commons and Log4J
Configuring Log4J
Logging in Web Applications
The org.apache.struts.util Package
Commons BeanUtils
Best Practices
Cardinalities in Struts Design
Coarse-Grained Form Beans
Many Actions from One View
Multiple Forwards
Many Mappings to One Action
Chaining Actions
Dynamic Forwarding
Form Beans as Mediators
Using Reflection and BeanUtils
Reusing Validation Rules
Mapping-Based Validation
Graceful Validation
Tiles
Consistent Look and Feel
Reusable Layouts and Content
The Tiles Framework
Instantiating Layouts
Body-Wrap
Insertions
Tiles and Stylesheets
Working with Tiles
Attributes
The Tiles Context
Definitions
Aggregation and Inheritance
The Tiles Plug-In
Forwarding to Definitions
Performance Considerations