877-277-2477
info@capstonecourseware.com
114. The Struts Framework
Version 1.3

Book cover

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; see the previous version for coverage of Struts 1.1.

Prerequisites

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.

Timeline: 4 days.

IDE Support: Eclipse WTP 2.0

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse WTP 2.0. Students can code, build, deploy, and test all exercises from within Eclipse, and take advantage of WTP's built-in editors, integrated debugging, and wizards for web applications, XML files, JSPs, and more. See also our orientation to Using Capstone's Eclipse Overlays, and please be advised that this is an optional feature; it is not a separate version of the course, and the course itself does not contain explicit Eclipse-specific lab instructions.

Chapter 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

Chapter 2. 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

Chapter 3. 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

Chapter 4. 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

Chapter 5. 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

Chapter 6. Internationalization and Localization

  • i18n in Java
  • i18n in Actions
  • i18n in JSTL
  • i18n in Validation

Chapter 7. 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

Chapter 8. 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

Chapter 9. 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

Chapter 10. 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 Requirements (Minimum) 1.0 GHz, 500 meg RAM, 500 meg disk space.
Hardware Requirements (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.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools.