Search Courses
Dates for this class:
No dates are available for this class.

Course Details    [choose new course]     [printable version]
Apache Struts
Course Number: APACHE003
Category: Database & Collaboration Tools
Duration: 5.00 days
Description
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
Experience in the following areas is required:
 
  • Java programming
  • Servlets programming
  • JSP
  • Basic knowledge of XML is recommended but not essential
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.
Outline

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
  • 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

 

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
  • 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

 

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

 

Internationalization and Localization

 

  • i18n in Java
  • 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
  • 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

 

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

 

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

 

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

 

Please note that this content is meant to be a guideline.

Class material is subject to change and may be presented in a slightly different format than listed.