Customized Onsite Struts (Struts 1.x or Struts 2) Training Courses

“Wonderful. In 20 years, this is the best organized, most pragmatic and enjoyable course I've taken.”

“The best instructor-led course I have attended, by far.”

“Best short course ever!”

“Compared to the other short courses I have taken, this one completely redefined my scale from 1-10.”

“In my 35+ years of taking technical courses, Marty's classes consistently come out ranking #1 on my list. Highly relevant material is delivered with enthusiasm, humor, and a high degree of class interaction that is unmatched anywhere.”

more student reviews

Here are the standard topics covered in the Struts course taught by Marty Hall. If you have a group of at least eight interested developers (10 for courses outside the US or Canada), contact Marty to arrange a course at your location.

Please note that topics can be added or removed to fit the interest and experience of your developers, and topics from this course can be combined with topics from other related J2EE courses.

For example, some organizations want coverage of some of the basic servlet and JSP topics before moving on to Struts. And many (perhaps most) organizations prefer courses that are essentially a combination of advanced JSP and Struts, where the advanced JSP topics are those for which Struts has no separate facility (declarative security, custom tags, filters, etc.).

However, the syllabus below gives an idea of the most popular Struts-only option. Please note that the syllabus below covers Struts 1.x (aka Struts Classic), but we are currently putting together a version for Struts 2, including a strong emphasis on Ajax.


Syllabus

Review

  • Installing and running Web applications
  • The MVC architecture

Struts Intro, Overview, and Setup

  • Understanding Struts
    • Different views of Struts
    • Advantages of Struts
    • Disadvantages of Struts
  • Setting Up Struts
    • Downloading and configuring Struts 1.2
    • Testing Struts
    • Setting up Struts applications
    • Accessing Struts documentation
    • Adding Struts to an existing Web application

Processing Requests with Action Objects

  • Struts flow of control
  • The six basic steps in using Struts
  • Example: one result mapping
  • Example: multiple result mappings

Handling Request Parameters with Form Beans

  • Two new ideas
    • Automatically creating bean to represent request data
    • Using bean:write to output bean properties
  • Defining form beans
  • Declaring form beans
  • Outputting properties of form beans
    • bean:write
    • JSP 2.0 expression language
  • Defining and outputting regular beans

Prepopulating and Redisplaying Input Forms

  • Using the Struts html: tags to build HTML forms that have three important characteristics:
    1. The textfield names and the bean properties are guaranteed to stay in synch
    2. The textfield values can be prepopulated based on the values in a bean.
    3. The forms can be redisplayed when they are submitted with incomplete or incorrect values.

Using Properties Files (Resource Bundles)

  • Loading properties files
  • Using bean:message
  • Applying properties files
    • To reuse fixed strings
    • To support internationalization

DispatchAction and Other Advanced Action Classes

  • Performing different logic based on a radio button, hidden field, or push button value
    • But not repeatedly checking parameter names in the execute method
    • Using DispatchAction
  • Using Struts form-bean capabilities in non-Struts applications
    • Without redoing code in Struts
    • Using ForwardAction
  • Other advanced Action subclasses

Declarative Exception Handling

  • Transferring to custom error pages when various exception types are thrown
    • Global exceptions
    • Per-Action exceptions
    • Standard web.xml approach
  • Using custom exception handlers
    • Declaring
    • Defining

Manually Validating Input

  • Distinguishing manual validation from automatic validation
  • Performing validation in the Action
    • Error messages in beans
  • Performing validation in the ActionForm
    • Fixed error messages
    • Error messages with substitution
    • Separate error messages

Automatically Validating Input

  • Distinguishing manual validation from automatic validation
  • Distinguishing client-side validation from server-side validation
  • Using automatic validation
    1. Declare application-wide properties file
    2. Add messages to properties file
    3. Turn on the automatic validator
    4. Put validation rules in validation.xml
    5. Put <html:errors/> in input page
    6. Enable JavaScript validation

Laying Out Pages with Tiles

  • Tiles motivations
  • Tiles basics
    • Sketch out desired layout
    • Make template file that represents layout
    • Create JSP pages that define layout pieces
    • Create JSP pages that populate layout
  • Handling relative URLs in Tiles
  • Using Tiles definitions file

Using the JSP Standard Tag Library (JSTL) with Struts

  • Obtaining and installing JSTL
  • Looping Tags
  • Conditional Evaluation Tags
  • Not breaking MVC Model
  • Database Access Tags
  • Other tags

onsite on-site public training courses course classes class intermediate advanced apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 spring hibernate ejb ejb3 ejb 3 ruby rails onsite on-site public training courses course classes class intermediate advanced apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 tutorial tutorials learning introduction training materials free apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 book books free online on-line pdf apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 consult consultant consultants consulting teaming mentoring software development apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 spring hibernate ejb ejb3 ejb 3 ruby rails tutorial tutorials learning introduction training materials free apache tomcat jboss weblogic servlet servlets jsp javaserver pages jakarta struts javaserver faces jsf myfaces tomahawk adf trinidad tobabo ajax asynchronous javascript xml java 5 java 6 jdk 1.5 jdk 1.6 ide ides eclipse jobs hosting documentation download