JVJK - Java Jakarta Struts
This advanced Jakarta Struts course shows JSP and servlet programmers how to build Model-2 Web applications using the Jakarta Struts project from Apache. Students learn the Struts architecture and see how it captures a great deal of pre-existing best practice in Web application development. They build applications from scratch using the Struts 1.1 code base, advancing through actions and action mappings, form beans, and request forwarding. They use relational data at the model layer and learn to configure JDBC data sources under Struts. Throughout, the course emphasizes the great facility in Struts of using XML declarations to replace boilerplate Java coding. After covering these controller techniques, the focus is shifted to presentation. Students learn to use various libraries of custom JSP tags: the JSP Standard Tag Library (which supersedes a number of Struts tags), Struts HTML tags for form-building and validation, and the Tiles library for robust and reusable page layouts. Effective Struts development 'under the
hood' coding techniques and best practices at a design level are covered last. By the end of the course, students will build complex, internationalized Web applications that validate user input, handle error conditions gracefully, and make best use and reuse of control and presentation logic through actions, form beans, validators, business and persistence JavaBeans, and Tiles.
Struts Architecture
MVC and Model 2
Command Pattern
Jakarta Struts
More XML, Less Java!
Action Mappings
JavaBeans in Struts
Working with Forms
Validation
Relational Models
Presentation Technology
Tiles
Action Mappings
Command Pattern for Web Applications
ActionServlet
Action
ActionMapping
Struts Configuration
Selecting a Forward
Global Forwards
Forwarding Actions
Other Action Subtypes
Declarative Exception Handling
Forms
Working with HTML Forms
What Not To Do
Action Forms
Relationship to Input
Relationship to Actions
Relationship to the Model
Relationship to Output
DynaActionForm and Map-Backed Forms
Validation
Coarse-Grained Form Beans
Relational Data
JDBC
Drivers
DriverManager (JDBC 1.0)
DataSource (JDBC 2.0)
Connection
Statement
ResultSet
The Struts Data-Source Manager
Multi-Tier Design
Business Logic Beans
Persistence Logic
EJB
Struts Tag Libraries
Building View Components
Struts Tag Libraries
Attributes
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
XML Tags
SQL Tags
Mixing JSTL, EL, Scripts and Actions
Internationalization and Localization
i18n in Java
Locale
ResourceBundle
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
Validators
Rules
Is <html:form> Necessary?
Reporting Errors
Multi-Page Validation
Client-Side Validation
Limitations on the Client Side
Implementing a Validator
Implementing ActionForm.validate
Under the Hood
Global Objects and Keys
Modules
ActionServlet, RequestProcessor, ExceptionHandler
Struts Configuration in Depth
The org.apache.struts.config Package
Plug-Ins
Logging with Commons and Log4J
Configuring Log4J
Logging in Web Applications
The org.apache.struts.util Package
Commons BeanUtils
Best Practices
Cardinalities in Struts Design
Coarse-Grained Form Beans
Many Actions from One View
Multiple Forwards
Many Mappings to One Action
Chaining Actions
Dynamic Forwarding
Form Beans as Mediators
Using Reflection and BeanUtils
Reusing Validation Rules
Mapping-Based Validation
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
Appendix: Learning Resources