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. 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
|
|
4. 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
|
|
5. 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
|
|
6. 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
|
|
7. 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
|
|
8. 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?
|
|
9. 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
- Testing Strategies
|
|
10. 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
|