Stepping through Jakarta Struts
by Keld H. Hansen
What is Struts?
Struts, from the Jakarta
Project, is a development framework for Java servlet applications based upon the
Model-View-Controller (MVC) design paradigm. The purpose of this article is to
give you a quick intro to Struts, covering the necessary details to make it
possible to build a simple one-page example containing an HTML form. Then I'll
refine this example to show you additional features of Struts. I'll assume that
you are familiar with Java servlet programming and the MVC architecture - if not
I'd recommend that you read this article
from JavaWorld.

- Figure 1: The MVC architecture -
Struts is comprised of a controller servlet, beans and other Java classes,
configuration files, and tag libraries. This means that when you have downloaded
Struts (and I'll come back to how this is done) you have available:
- a controller for your application (the Struts servlet acts as a common
controller for the whole application)
- a collection of Java beans and other helper classes that you use in the
"Model" part of your application
- a collection of tag libraries used in your jsp-pages
To glue these things together Struts uses a set of configuration files.
Together this gives you the skeleton that you can use to "strut" your
application.
Struts has been designed to give you modularity and loose couplings in your
application. If you're building a simple, small application you might find it
complicated to have to create and handle so many files. You might even be
tempted to put all your code in a single jsp-file. My advice to you is: don't do
it! I'm sure you can build a single-page application faster using only one
jsp-page, but if we're talking about more complex applications, the extra effort
put in by using a modular framework will soon be rewarded.
If you hang on I'll guide you through the complete Struts application setup
and hopefully show you how each piece fits in.
Our first Struts application
Our first small application will be a page with an HTML form containing all
the well-known controls. As you can see I have not tried to make the GUI look
nice - we're architects now - not graphical designers:

- Figure 2: The first, simple application -
When we submit this page it should redisplay itself without loosing the data
that we have entered. Such an application is always a good first exercise if you
want to learn about new tools or technologies.
But before we start building the application we need to download and install
Struts.
Step 0: Downloading and installing Struts
Struts is downloaded from the Jakarta Project at http://jakarta.apache.org/struts/.
The download address for the current version - 1.0.2 - is http://jakarta.apache.org/builds/jakarta-struts/release/v1.0.2.
The simplest way to install Struts is to copy a small Struts application, packed
in "struts-blank.war", from the download file to your Servlet container. If
you're using Tomcat and many
other servlet containers you place the war-file in the "webapps" folder and you
now only need to restart your server and you'll have "struts-blank" running. On
Tomcat you can check your installation with this URL: http://localhost:8080/struts-blank/index.jsp.
The download contains an "install" file which contains installation tips for
several containers.
This should emphasize that Struts can be seen as the core of a normal servlet
application - it's not a modification to your servlet container or anything like
that.
While picking up the struts-blank application you might as well take and
install the "struts-documentation.war" application, which contains a lot of
Struts documentation - for example the User Guide.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|