114. The Struts Framework
Rev. 1.3
This course is now available directly from our partner, Capstone Courseware.
This advanced course shows JSP and servlet programmers how to build
web applications using the Apache Struts framework. Students learn the Struts
architecture and see how it captures a great deal of pre-existing best practice:
in model/view/controller action mappings, form beans and custom tags for
working with HTML forms, input validation, and the Tiles view-building
framework. Two chapters near the end of the course cover configuration
techniques and other advanced topics.
This version of the course illustrates the use of Struts 1.3.
LEARNING OBJECTIVES
·
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 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.
Course Duration: 4 days
Prerequisites:
·
Java programming – Course 103 is excellent
preparation.
·
Servlets programming – Course 110.
·
JSP – Course 112.
·
Basic knowledge of XML is recommended but not
essential – consider Course 501.
1. Struts Architecture
MVC and Model 2
Command Pattern
Jakarta
Struts
More XML, Less Java!
Action Mappings
JavaBeans in Struts
Working with Forms
Validation
Presentation Technology
Tiles
1.
Action Mappings
Command Pattern for Web Applications
ActionServlet
Action and Action Mappings
Struts Configuration
Selecting a Forward
Global Forwards
Declarative Exception Handling
Global Exception Handlers
2.
Forms
Working with HTML Forms
Action Forms, a/k/a Form Beans
Relationship to Input
Relationship to Actions
Relationship to the Model
Relationship to Output
DynaActionForm and Map-Backed Forms
Validation
Coarse-Grained Form Beans
3.
Struts Tag Libraries
Building View Components
Struts Tag Libraries
Attributes and Struts Expressions
Building Forms
<html:form>
<html:text> et. al.
Forms and Form Beans
Scope and Duration of Form Data
Managing Hyperlinks
Error Messages
Logic Tags
4.
The JSP Standard Tag Library
JSTL Overview
JSP Expression Language
Core Tags
Formatting Tags
SQL Tags
XML Tags
Mixing JSTL, EL, Scripts and Actions
Indexed Properties and Struts HTML Forms
5.
Internationalization and Localization
i18n in Java
i18n in Actions
i18n in JSTL
i18n in Validation
6.
Input Validation
Validation in Web Applications
Validation in Struts
The Struts Validator Plug-In
Validating ActionForm Subtypes
Configuring Validation
Standard Validators
Rules
The ActionMessages Class
Is <html:form> Necessary?
Reporting Errors
Multi-Page Validation
Client-Side Validation
Limitations on the Client Side
Implementing a Validator
Implementing ActionForm.validate
Mapping-Based Validation
7.
Advanced Configuration
Struts Configuration in Depth
Wildcards
Extensions
The Configuration Object Model
Subclasses and <set-property>
Plug-Ins
Integrating Other Frameworks
Role-Based Security
Chaining Actions
The ComposableRequestProcessor Class
Configuring Command Chains
Modules
8.
Under the Hood
Global Objects
Specialized Struts Actions
The Utility Package
The Commons BeanUtils Class
Form Beans as Adapters to the Business Tier
Reusing Validation Rules
Graceful Validation
9.
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
Appendix A: Learning
Resources
Appendix B: Quick Reference
System Requirements
Hardware – minimal: 1 GHz, 512 meg RAM, 500 meg disk space
Hardware – recommended: 1.5 GHz, 1 gig RAM, 1 gig disk space
Operating system: Tested
on Windows XP Professional. Course software should be viable on all systems
which support a J2SE 5.0 JDK.
Software: All
free downloadable tools.