Objectives
  After completing this course students will be able to:
  • Understand and explain the Jakarta Struts framework
  • Design and build Struts based applications
  • Use MyEclipse to create a simple Struts application
  • Develop a simple custom tag lib
  • Use The Struts Tag Lib
  • Use the DynaActionForm and Validator feature of Struts 1.1.
Topics
 
  • Struts Architecture and Overview
  • A Simple Struts Application
  • Struts Development Cycle
  • Struts Tag Libraries
  • Struts Extensions, Internationalization, Error Handling and Logging
  • Miscellaneous Advanced Features such as Validators and DynaActionForm
  • Database Programming
  • Templates and Tiles
  • Unit Testing Struts Applications - StrutsTestCase
  • JSTL
Audience
  This course is intended for programmers and designers who want to design and develop applications using the Jakarta Struts Model-View-Controller (MVC) framework.
Prerequisites
 
  • A good understanding of HTML.
  • A good understanding of object-oriented programming using Java.
  • Experience with JSPs and servlets with some understanding of JavaBeans or EJBs.
Duration
  Five days.
Lab Setup Guide

Outline for Struts 1.1 bootcamp using Eclipse

1. Struts Architecture and Overview
 
  • Introduction to Struts
  • Objectives
  • Review: MVC model
  • What is Struts?
  • Struts flow
  • Components in Struts?
    • The Model
    • The View
    • The Controller
  • struts-config.xml
    • The <data-sources> element
    • The <form-beans> element
    • The <global-forwards> element
    • The <action-mappings> element
    • Sample
  • The role of web.xml for the application
  • Configuring Struts in web.xml
    • web.xml content
    • Steps to configuring Struts in web.xml
    • Sample
  • Summary
2. A Simple Struts Application
 
  • The Goal of the Application
  • The input form· The struts-config.xml
  • The Form Bean class
  • The Action class
  • The result page
3. Struts features in Eclipse
 
  • Objectives
  • Struts binary distribution
  • Directory structure of Struts application
    • Example
  • Eclipse support for Struts
  • Developing a web application using Eclipse features of Struts
4. Struts Development Cycle
 
  • Objectives
  • Struts development cycle
  • Gathering requirements
  • Defining screen requirements
    • Data vs. FormBean
    • define FormBean
  • Determining the screen flow
  • Defining the ActionMappings in struts-config.xml
  • Developing the FormBean
    • The reset ( ) method
    • Form validation using the validate ( ) method
    • ActionError
    • Define message key
  • Developing Action Class
    • Action and Action Class
    • The execute() method
    • ActionForward
    • ActionMapping class
    • execute() example
    • Example execute() method
    • Developing business logic - EJB
  • Developing JSPs
  • Configuring struts-config.xml and web.xml
  • Build, pack and deploy
5. Struts Tag Libraries
 
  • Objectives
  • JSP taglib directive
  • Components of a tag library
  • The JSP File
  • The tag library descriptor
  • The tag Handler Class
  • An example
    • The TLD File - carPrice.tld
    • TDL File - example
    • The Handler Class - CarPriceHandler.java
    • The Handler Class - example
    • The JSP File - Carprice.jsp
  • Tag Lib Handler life cycle
  • Directory structure: where custom tag libraries fit
  • Struts TagLib
  • Bean tags
    • bean:message
    • bean:define
    • bean:page
    • bean:include
    • bean:cookie
    • HTML tags
      • html:form
      • html:submit
      • html:text
      • html:link
      • html:password
    • Logic tags
      • Functionality
      • logic:equal
      • logic:iterate
    • Template tags
6. Struts Plugin, Internationalization and Error Handling
 
  • Objectives
  • Struts plugins
    • Creating a plugin
    • Configuring a plugin
  • Internationalization
    • Struts Internationalization Mechanisms
    • Adding internationalization to the example application
    • Formatting messages
  • Error Handling
    • Struts Error Handling Mechanisms
    • ActionError and ActionErrors
    • Error handling from a form bean
    • Error handling from an action
    • Formatting error messages
    • Struts exception handling
    • Adding error handling to the example application
7. Miscellaneous Advanced Features
 
  • Objectives
  • HTTP Redirection
  • Dealing with check boxes
  • Context sensitive form validation
  • DispatchAction
  • BeanUtils package
  • Digester package
  • DynaActionForms
  • Multi-application support
  • Validators
8. Database Programming
 
  • Configuring and using a Struts Data Source
  • Using a J2EE Data Source
  • Transaction management from an action
  • Sharing a connection with the model classes
  • Pre-populating a form for editing data
  • Paginated listing of large amounts of data
9. Templates, Tiles and JSTL
 
  • Objectives
  • Struts Templates
  • Template tags - insert, get and put
  • Struts 1.1 tiles support
  • Inheritance in tiles definitions
  • JSTL overview
  • JSTL and Struts
10. Unit Testing Struts Applications - StrutsTestCase
 
  • Objectives
  • What is JUnit?
  • A sample JUnit test case
  • A simple StrutsTest test case
  • Executing a StrutsTest test
  • Testing strategies
11. JSTL
 
  • Objectives
  • The future of Struts Tags
  • JSTL - What does it provide?
  • JSTL actions
    • Core JSTL tags
    • Formatting tags
    • Database tags
    • XML tags
  • JSTL Expression Language
  • JSTL Implicit Objects
12. Struts Project Workshop
 
  • Understand a draft set of business and user requirements
  • Interact with the project sponsor (for project goals) and business user (for business process info).
  • Develop a high level design.
  • Present the high level design to the instructors and class.
  • Modify the high level designs based on comments; create detailed design and test cases.
  • Update the detailed design if needed, code your solution.
  • Prepare and execute test cases.
  • Demonstrate the solutions and test results to the instructors and class