WA1171 Introduction to Struts 1.1 using WSAD V5.1.1 Training and Courseware Course Outline

1. Struts Architecture and Overview

  • Objectives
  • Review: MVC Model
  • Review: Request, Session and Application
  • What is Struts?
  • Struts Flow
  • Components in Struts
  • The Model
  • The View
  • The Controller
  • Struts Flow
  • struts-config.xml
  • struts-config.xml Content
  • The data-sources element in the struts-config.xml
  • The form-beans element in the struts-config.xml
  • The global-forwards element in the struts-config.xml
  • The action-mappings element in the struts-config.xml
  • Sample struts-config.xml
  • The Role of web.xml for the Application
  • Configuring Struts in the web.xml
  • web.xml Content
  • Steps to Configuring Struts in the web.xml
  • Step 1. Configuring the Action Servlet Instance in the web.xml
  • Action Servlet Config Example
  • Step 2. Configuring the Action Servlet Mapping in web.xml
  • Prefix Mapping Example
  • Extension Mapping Example
  • Step 3. Configuring the Struts Tag Libraries in the web.xml
  • Sample web.xml
  • Summary
 

2. The First Struts Application

  • Objectives
  • The application
  • The Structure
  • Setup Needed
  • Directory Structure
  • index.jsp
  • index.jsp - continued
  • The index.jsp Page
  • struts-config.xml
  • MultiplyForm.java
  • MultiplyForm.java - continued
  • MultiplyAction.java
  • MultiplyAction.java - continued
  • result.jsp
  • The result page
  • ApplicationResources.properties
  • Summary
 

3. Development of Struts Applications Using WSAD v5.1

  • Objectives
  • Directory Structure of a Struts Application
  • Directory Structure of a Struts Application – an Example
  • WSAD Struts Support
  • Create a Struts Web Application project
  • View the Struts Project Structure
  • Create a Struts JSP
  • Insert Struts Tags
  • Creating a Struts Form Bean
  • Creating a Struts Form Bean – Cont’
  • Create a Struts Action
  • Create a Struts Action – Cont’
  • Edit a Struts Configuration File
  • Summary
 

4. Struts Development Cycle

  • Objectives
  • Struts Development Cycle
  • Gathering Requirements
  • Defining Screen Requirements
  • Detailed screen design
  • Struts view components – Data vs. ActionForm Bean
  • Defining Screen Requirements – define FormBean
  • Developing the FormBean
  • Developing the FormBean – The reset( ) Method
  • Developing the FormBean – The validate( ) Method
  • Developing the FormBean – ActionErrors
  • Developing the FormBean – Defining the Message Key
  • Determining the Screen Flow
  • Defining the ActionMappings in the struts-config.xml
  • Developing the Action Class – action and Action Class
  • Developing the Action Class
  • Developing Actions – The execute() Method
  • Developing Actions – ActionForward
  • Developing Actions – ActionMapping class
  • Developing Actions – execute() example
  • execute() Method Example:
  • Developing Business Logic – EJBs
  • Developing JSPs
  • Configuring struts-config.xml and web.xml
  • Build, Pack, and Deploy
  • Summary
 

5. Custom JSP 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
  • TLD File – Example
  • The Handler Class – CarPriceHandler.java
  • The Handler Class – Example
  • The JSP File – Carprice.jsp
  • Tag Lib Handler Lifecycle
  • Directory Structure: where Custom Tag Libraries Fit
  • Struts TagLib
  • Bean Tags
  • bean:define
  • bean:message
  • bean:page
  • bean:include
  • bean:cookie
  • HTML Tags
  • html:form
  • html:submit
  • html:text
  • html:link
  • html:password
  • Logic Tags
  • Logic Tags functionality
  • logic:equal
  • logic:iterate
  • Template Tags
  • Example of Template Tags
  • Summary
 

6. Struts Extensions, Internationalization and Error Handling

  • Objectives
  • Struts Extensions
  • Extension Points
  • Plug-ins
  • A plug-in example
  • Custom Configuration Class
  • Writing a Configuration Class
  • Custom Struts Servlet
  • Custom Request Processor
  • Base Action Class
  • Base Form Beans
  • Custom JSP Tags
  • Disadvantages of Using Extensions
  • Internationalization (I18N)
  • I18N - continued
  • Error Handling
  • The ActionError class
  • The ActionErrors class
  • Error Handling : validate() method of ActionForm
  • Displaying the errors found in the validate method
  • Error Handling : execute() method of Action
  • Error Handling : execute() method of Action - contd
  • Declarative Exception Handling
  • Syntax of declarative exception handling
  • Programmatic Exception Handling
  • Logging from Struts
  • Logging (cont.)
  • Using Commons Logging and Log4J in Struts
  • Writing Commons Logging Code
 

7. Miscellaneous Advanced Features

  • Advanced Features Discussed in This Chapter
  • Integration of Jakarta Common Libraries - BeanUtils
  • Integration of Jakarta Common Libraries - Digester
  • Multiple Application Support
  • DynaActionForms
  • Validators
  • Adding the Validator framework to a Struts application
  • A tale of three files
  • A sample rule in the file validator-rules.xml
  • A rule in validator-rules.xml (continued)
  • validator.xml file
  • Validator Dependency
  • Rule Variables
  • Error Message
  • Error Message (cont.)
  • Basic Validation Rules
  • Client Side Validation
  • Validating multiplication example using DynaActionForm
  • Writing Custom Validators
  • Validator Class Example
  • HTTP Redirection
  • Working With Check Boxes
  • Context Sensitive Form Validation
 

8. Database Programming

  • Basic Concepts
  • MVC Interaction
  • Database Connection
  • Transaction Management
  • Data Source
  • Defining a Struts Data Source
  • Opening a Connection from a Struts Data Source
  • Creating an Editor Form
  • Example Form Display Action
 

9. Templates and Tiles

  • Objectives
  • Struts Templates
  • Defining the Template
  • A template
  • Using the template in a JSP
  • template:insert
  • template:put
  • A JSP that uses the template
  • Struts Templates
  • Templates as UI components
  • Struts 1.1 Tiles Support
  • Tiles
  • Tiles example
  • A JSP that uses the layout
  • Tiles go beyond templates
  • Inheritance in tiles definitions
  • Definitions as Struts “forwards”
  • Template or Tiles?
 

10. Unit Testing Struts Applications

  • Objectives
  • Unit Testing Struts Applications
  • What is JUnit?
  • Why JUnit?
  • A JUnit Test
  • Running the tests
  • JUnit Basics
  • A simple Struts test case
  • The testcase
  • Downloading STC
  • Running STC inside WSAD
  • Running STC inside WSAD …
  • Executing the test
  • Testing Strategies
 

11. JSTL

  • JSP Expression Language (EL)
  • Basic Usage
  • Built-in Objects
  • Working With Arrays and Maps
  • Operators
  • Full Example
  • The future of Struts Tags
  • JSP Standard Template Library (JSTL)
  • Run Time Version
  • Basic Tags
  • Condition Tags
  • Interator Tags
  • Internationalization (I18N)
  • Setting Preferred Locale
  • Specifying Resource Bundle
  • Display Translated Text
  • Display Number
  • Display Date
  • JDBC Tags
  • Specify Data Source
  • Performing a Query
  • Display Result
  • Pagination Example
  • XML Tags