Struts Articles

Struts is undoubtedly the most successful Java web development framework.

Struts Articles

2nd Part

Now you are ready to modify your project properties:

1. Right click on your project StrutsEJBTutorial in the package explorer of Eclipse.
2. Select properties, and Click Java Build Path.
3. Modify your source folder. For this tutorial, keep intact the directory structure of a Struts project. Click StrutsEJBTutorial and click Add Folder. Expand the WEB-INF node, then expand the src node, check java, and click OK. Make sure that WEB-INF and src are not checked; otherwise, Eclipse will try to recognize these as source folders as well.
4. Modify your output folder. Click the Browse button on the bottom right, expand StrutsEJBTutorial and WEB-INF, and select classes. Click OK. 

Oracle ADF Data Binding Primer and ADF/Struts Overview
This article explains the basics of the new Oracle Application Development Framework's data binding layer (based on JSR-227), gives an overview of the ADF runtime and design time data binding facilities, explains how ADF integrates with and supports easily building Struts-based web applications, and puts the concepts into practice with three simple example applications.

In this article, we'll gain a high-level understanding of the Oracle ADF data binding concepts, see how we work with them at design time using Oracle JDeveloper 10g, and observe how they work in practice by studying a simple, working example of a Struts-based JSP application using Oracle ADF that complies with the best-practice Model, View, Controller design approach.

Implementing page navigation in portal applications using Struts portlets
Struts is a popular open source foundation designed to make complex Web applications easier to create and maintain. The Struts framework supports the Model-View-Controller (MVC) pattern and addresses many important application design and implementation considerations. To carry out page navigation in portal applications, WebSphere® Portal V5 provides tags that can be used by JavaServer Pages (JSPs) in developing both typical portlets and Struts portlets. This article focuses on the Struts framework's capability to create multiple modules, and how to implement page navigation methodology from JSPs in a sample Struts portlet application.

This article assumes you have a basic understanding of Struts applications, including how to build a Struts application in WebSphere Studio Application Developer, how to deploy Struts as a portlet, and an understanding of portal resources within WebSphere Portal. (See Resources for more information in these areas.)

Developing Struts with Easy Struts for Eclipse
This article shows you how to develop a Struts application in the Eclipse IDE, with the help of the Easy Struts plug-in. You'll get an introduction to Easy Struts, installation and configuration steps, and instructions on building a basic Struts application through a progressive example. Different ways of enhancing the Struts application -- such as connecting to a database, modularizing the application, internationalizing and localizing content, handling exceptions, and creating custom plug-ins -- are also covered. Finally, you will learn how to deploy your Struts application on the Tomcat Web server.

The Easy Struts plug-in manages all the complex configuration files, so you can focus on developing logic. Let's look at the 10 functions of Easy Struts that help you build a complete application:

1. Add Easy Struts support. Adds all the necessary Struts libraries to the project classpath, and creates the configuration files and the default resource properties file.
2. Easy Form. Creates a JSP file with the form properties, as well as a Form bean class with form properties getter and setter methods, and adds a form bean definition to the configuration file.
3. Easy Action. Creates an Action class and adds an action mapping definition to the configuration file.
4. Easy Action associated with a form. Creates a JSP file with the form properties, a Form bean class with form properties getter and setter methods, and an Action class. Also addes a form bean definition and an action mapping definition to the configuration file.
5. Easy Forward. Creates local forwards and global forwards, which define where the control will be forwarded to.
6. Easy Exception. Handles exceptions.
7. Easy Message resources. Creates resource properties files, which is especially important for internationalization and localization of content.
8. Easy Plug-in. Creates plug-ins.
9. Easy Datasource. Connects the application to a data source.
10. Easy Module. Modularizes the application.

Wiring Your Web Application with Open Source Java
This article will discuss how to combine several well-known frameworks to achieve loose coupling, how to structure your architecture, and how to enforce a consistent design across all application layers. The challenge is combining frameworks so that each layer is exposed to each other in a loosely coupled manner, regardless of the underlying technologies. This article will discuss one strategy for combining frameworks using three popular open source frameworks. For the presentation layer we will use Struts; for our business layer we will use Spring; and for our persistence layer we will use Hibernate. You should be able to substitute any one of these frameworks in your application and get the same effect. 

At one end of a typical web application is the presentation layer. Many Java developers understand what Struts provides. However, too often, coupled code such as business logic is placed into an org.apache.struts.Action. So, let's agree on what a framework like Struts should provide. Here is what Struts is responsible for:

1. Managing requests and responses for a user.
2. Providing a controller to delegate calls to business logic and other upstream processes.
3. Handling exceptions from other tiers that throw exceptions to a Struts Action.
4. Assembling a model that can be presented in a view.
5. Performing UI validation.

Migrating a Struts application to WebSphere Portal
Struts is a popular open-source development framework that provides a convenient way for modular applications to cleanly separate logic, presentation, and data. IBM WebSphere Portal has a built-in Struts Portlet Framework that enables Struts to extend its popularity to portal applications. This article shows how existing Struts applications can be migrated using the Struts Portlet Framework and then deployed in WebSphere Portal.

IBM WebSphere Studio Application Developer (hereafter called Application Developer) has built-in tooling and run time support for developing and unit testing Struts applications. With the WebSphere Portal Toolkit installed in Application Developer, portal applications can also be developed and unit tested with WebSphere Studio.

This article describes how to migrate an existing Struts application to a portal application with WebSphere Studio. This article assumes that you have basic knowledge of Struts and the Struts tools in WebSphere Studio. (For basic information on this topic, see Writing a Simple Struts Application using WebSphere Studio V5.)

Succeeding With Struts: Dynamically Sized Forms
In the previous installment of Succeeding with Struts, I alluded to the ability of DynaForms to dynamically size forms at run time. In other words, the ability to have a form that could be 5 rows long, or 10 rows, or 15 rows as needed. Perhaps a bit unwisely, I let the actual implementation of such a strategy as an exercise to the reader.

The first thing the execute method does, as any DynaForm-based action does, is to cast the generic ActionForm class to a DynaValidatorForm. This allows us to use the get and set methods on the form. Next, the method creates a three-element array of type Person. In this method the size is hardwired, in a real application this could be a size based on doing a select from a database. The important thing to consider is that the array is being created in the code here, not by the Struts engine itself. So any arbitrary number of rows could be created by the code in response to application requirements.


StrutsTestCase: Drilled-down Testing for Struts-based Java Apps
StrutsTestCase makes it easy to switch between mock testing and in-container testing. You choose mock testing or in-container testing by subclassing MockStrutsTestCase or CactusStrutsTestCase, respectively. You do not have to make any other changes to your code. Thus, if you want to switch from mock testing to in-container testing, simply do a textual search and replace to change all occurrences of "extends MockStrutsTestCase" to "extends CactusStrutsTestCase".

Security in Struts: User Delegation Made Possible
The Jakarta Struts framework has been widely adopted for creating web applications in the J2EE world. Struts makes it easy to create a web application because it builds on standard J2EE technologies like Java servlets, JavaBeans, JavaServer Pages, and custom tags. Validation of user input and internationalization of the views on the application are some of the important and better-known reasons to choose Struts as the basis for your web application.

In struts-config.xml you can specify a roles attribute, a comma-delimited list of security role names that are allowed access to the ActionMapping object in question. But that is all there is available regarding security in Struts, and it is surely not sufficient to implement the security delegation the application needs.

Advanced Forms Handling in Struts 1.1
This article is about the more advanced features Jakarta Struts offers in building HTML forms. If you know how to create forms in plain HTML then the step to building simple forms in Struts with, for example, a couple of input text fields, a checkbox or a radio button is not very complicated. When it comes to the more complex controls like the multi-valued selection list or a variable length list of input fields it gets more challenging. This is especially true when the possible selections are not fixed, but taken from some external source like a database instead. I've too often found myself struggling with the syntax and semantics of the HTML-tags when the forms get complex, and if you search the web for advice, you'll soon see that you have to collect information from many sources.

ActionForm or DynaActionForm - Making the choice
Imagine a Struts 1.0 world where an ActionForm was absolutely needed even for prototyping an HTML form in JSP using Struts custom tags. Things were good until the separation of concern came into picture. In real life projects, different people play different roles. Application developers have the responsibility of developing Java code and page authors would exclusively prototype the page and its navigation using JSP markup tags. Since the Java code beingdeveloped is constantly changing, the developer does local builds on his machine. Similarly the page author would certainly like to add or remove fields from the prototype during the page design. Since the HTML forms map to ActionForms, the above scenario implies one of two things.

1. The page author constantly pesters the Java application developer to modify the ActionForm.
2. The page author develops the ActionForm all by himself.

Developing and Deploying a Struts Application as a WebSphere Portal V5 Portlet
This article discusses the implementation of a portlet written for IBM  WebSphere Portal Version 5 (hereafter called WebSphere Portal) using the Struts Portlet Framework. Struts is an Apache Jakarta project providing a very popular open source framework for building Web applications. WebSphere Portal V5.0 provides the Struts Portlet Framework that supports the deployment of Struts applications as portlets. The Struts Portlet Framework also supports portal modes and devices within a Struts application.

The focus of this paper is not on developing a Struts Web application; instead, it is on the implementation and configuration required to deploy the Struts application as a portlet. You see how to create a portlet using the Jakarta Struts Framework, which is incorporated into the IBM Struts Portlet Framework. In WebSphere Portal V5 the Struts Portlet Framework ships Jakarta Struts 1.1.0.

Check Your Form with Validator
One major benefit of the Struts framework is its built-in interface for performing data validations on incoming form data. If any validations fail, the application redisplays the HTML form so that the invalid data can be corrected. Otherwise, processing continues. The Struts framework's simple validation interface alleviates much of the headache associated with handling data validation, allowing you to focus on validation code and not on the mechanics of capturing data and redisplaying incomplete or invalid data.

Struts' built-in validation interface, however, has its shortcomings. Often, for example, validation code is heavily duplicated throughout an application, because many fields require the same validation logic. Any change in the validation logic for similar fields requires code changes in several places as well as recompilation of the affected code. To solve this problem and to enhance Struts' validation interface, the Validator framework was created as a third-party add-on to Struts. Validator was later integrated into the core Struts code base and has since been detached from Struts and is now a standalone Jakarta Commons project. Although Validator is an independent framework again, it still comes packaged and seamlessly integrated with Struts. 

Providing a Flex Front End to Your Struts Applications
Struts is an open source framework that facilitates the development of web applications based on Java servlets and other related technologies. Because it provides a solution to many of the common problems developers face when building these applications, Struts has been widely adopted in a large variety of development efforts, from small projects to large-scale enterprise applications.

This article describes how you can provide your Struts applications with a rich front end using Flex technology. The objective of this article is not to make a case for Rich Internet Applications. It assumes that you already understand their value. This article focuses on the Flex/Struts integration from an architectural and technical point of view.

Professional Jakarta Struts: Advanced Action Classes
In this chapter, we dig further into the Controller components of the Struts framework by covering the built-in Action classes that come with Struts. Our goal is to provide you with a solid understanding of the Struts built-in actions and how they can be used to facilitate the design of your Struts applications.

The Struts Framework provides several built-in actions. A few of these are essential for any Struts application. Others are necessary to add cohesion to what would normally be a granular collection of related actions.

To use the ForwardAction, follow these steps:

1. Using the html:link tag with the action attribute, add a link to the JSP page that points to the action.
2. Create an action mapping in the Struts configuration file that uses the ForwardAction with the parameter attribute to specify the JSP path.

ASP.NET and Struts: Web Application Architectures
The last decade has reshaped the way that we do business and access information. Since the emergence of simple information portals in the early nineties, the Internet has rapidly evolved into a major and profitable forum for business and trade. This evolution has spawned two major standards for building enterprise Web applications?Microsoft® ASP.NET (and the Microsoft .NET Framework) and Apache's Struts (along with the J2EE framework).

Architects and developers from both the .NET and Java communities are now asking how these two technologies compare in scope, functionality and underlying architecture. In this paper we will provide an overview of the platforms, a rundown of the similarities and differences, and a review of the features that each framework provides to solve common developer problems. We will show how the industry standard patterns implemented in ASP.NET and Struts have helped reduce code complexity and accelerate development times. We will also explore the advantages and disadvantages of each offering, and the utility that they bring to the next generation of development.

Complete the MVC Puzzle with Struts
In this article, we?ll take a brief trip into the world of the Model-View-Controller (MVC) design pattern, and, in particular, we?ll look at how it is implemented using the Struts framework. We will start by describing the MVC pattern at a theoretical level, then move on to describe how we might ?roll-our-own? MVC framework. Once we?ve looked at this, we?ll describe Struts and show how this technology helps us quickly and simply build MVC-based Web applications.

Struts Provides Support for Dynamic Content
In this first installment, we'll look at how to handle dynamic contents to render a Web page under the Struts Framework, and then we'll move on to DynaActionForms and their advantage over normal ActionForms. In the final installment of this article we'll discuss Map-backed forms and how to handle dynamic contents using such forms. Liberal examples of code will illustrate these concepts. The contents discussed here are supported by Struts version 1.1 (beta) and later. The code was tested in a WebSphere Studio Application Developer (WSAD) Version 5.0 Enterprise Edition test environment.

The Struts framework defines actions what we'll call unit of work. Any user action (such as clicking a button on a screen) gets translated to some Struts action, which is defined at struts-config.xml (or the configuration file, which is how we'll refer to it from this point onward).

Handling Messages, Errors and Exceptions in Struts 1.1
This article is about Jakarta Struts 1.1, the most popular framework for building Java servlet applications. One of the new, useful features in 1.1 is the possibility to specify exception handling in the Struts config file. It's called "declarative exception handling", and it's one of the topics for this article.

You use exceptions when the application has encountered a serious error. The error could be an SQL statement that fails, or a connection to another computer that couldn't be established. As a programmer, you should first of all record the situation as precisely as you can. For example, writing information to a log file. You might also have to fix up a few things to keep the program state stable, but eventually you'll also have to inform the user of the situation. So to move forward, one issue in exception handling is how to handle messages, and I'll therefore start by explaining how you generally should handle messages for the end user in Struts. A special class of messages are "validation messages", which are sent out as the result of the validation of a form. If you're interested in how to set up forms validation you may want to read my article "Stepping through the Struts 1.1 Validator". 

Integrating Struts, Tiles, and JavaServer Faces
The Struts framework has been around for quite some time and has become the de facto standard that developers turn to when developing a J2EE Web application. The Tiles framework, which came soon after Struts, established its niche by offering developers the ability to assemble presentation pages using component parts. JSF, the newest kid on the Web-application-framework block, provides mechanisms for validating user input and handling user events; most importantly, it is a protocol-independent way of rendering user interface components. (For a quick look at these technologies, see the sidebar, "The major players.")

Although some of the functionalities in Struts and JSF overlap, they are complementary in other ways. The combination of these three technologies can provide an efficient way to develop a Web application, organize its presentation, and render custom user interface (UI) components independent of protocol.

Struts Applications and Multilanguage Support
This article introduces you to Struts and shows you how to build an application that can support multiple languages, preserve the MVC pattern, and help you to easily maintain your code. First, I discuss the principles of building multiple language support, including the different choices you have and showing you the enhanced possibilities that you can have with Struts.

There is an answer to this problem: Struts and its powerful application framework. With Struts, you can support multiple languages at a glance. The Struts framework separates your logic from the presented content, later referred to as messages. You can easily manage your code, develop in a safe way, and stick with the model view controller (MVC) pattern.

What's New In Struts 1.1
Jakarta Struts 1.1 is finally out the door. In reality, however, this release is more like Struts 1.99 or even Struts 2.0 when you get done looking at all the new features and functionality that have been added.

To begin with, the release is much more bulletproof than 1.0.2 was, mainly as a result of the thousands of developers who have been using the 1.1 betas and finding bugs. In addition, the same developers were finding the shortcomings of 1.0 as they deployed Struts as their application framework, and have been adding some sorely needed features.

Getting the Most Out of the Struts Tag Libraries
The Struts framework provides a set of six built-in Tag libraries that allow you to build the view part of the MVC without embedding Java code directly within your application JSPs.

The six Struts libraries are:

1. Bean Tags
2. HTML Tags
3. Logic Tags
4. Nested Tags
5. Template Tags
6. Tiles Tags

Struts 1.1 Controller UML diagrams
The goal of this article is to illustrate the Struts 1.1 Controller with UML diagrams. This article is an introduction to the Struts framework in order to help beginners programmers to understand the MVC model 2.

* Since Struts 1.1, the processing logic has been delegated to the RequestProcessor class :
1. Method processMapping selects the ActionConfig used to process the selection path for this request.
2. Method processActionForm retrieves the ActionForm associated with a mapping or creates and stashes one if necessary.
3. Method processPopulate populates the properties of the specified ActionForm from the request parameters included with this request.
4. Method processValidate calls the validate() method of the specified ActionForm, and forwards back to the input form if there are any errors.
5. Method processActionPerform asks the specified Action instance to handle the request, returns an ActionForward

Exploit XDoclet's Struts Capabilities
Struts and XDoclet fit well together. Let's start with a straightforward example. We have a Web form that asks for first name and last name, and when the form is submitted the name entered is stored in session scope so that it can be displayed throughout the site during the user's visit. In Struts, this process is implemented with the following pieces: form bean, a JavaBean with getters/setters for the firstName and lastName properties; JSP page, which uses Struts taglibs to build an HTML form; and action, an Action subclass that processes the form submitted.

Form Validation and Action Mapping
Action mappings in struts-config.xml can also be generated from Action subclasses tagged appropriately. You can see the tags necessary for generating a typical Struts action mapping. When adopting XDoclet, though, it is not necessary to use it for the entire struts-config.xml generation. In production, I prefer to hand code the action mappings, despite XDoclet's generation capabilities. Merging static content into XDoclet-generated artifacts is a provided feature, using merge points that are places in the templates that pull in an external file. The files reside in the mergedir (see Listing 1 in "Exploit XDoclet's Struts Capabilities"), and must adhere to naming conventions documented within XDoclet, and also within the generated artifacts (look for XML comments that indicate them). For hand-coded Struts action mappings, the <strutsconfigxml> subtask looks for a struts-actions.xml file in the mergedir. The mergedir attribute can be specified globally for the <webdoclet> task and can be overridden on a subtask basis if desired.

Server-Side Java with the Struts Framework on Mac OS X
Struts helps you organize your Java-based web applications by providing a framework based on a version of the Model-View-Controller design pattern. With Struts (or more formally, the Jakarta Project?s Struts Framework), you can combine Servlets, JSP, custom Struts tag libraries and other components using a unified framework that helps you design, create, and deploy stable web applications quickly. It requires a bit more work initially, to set everything up, but the value of the framework is realized later, when the ordered and componentized nature of your code lets you maintain, update, and reuse it easily.

Stepping through the Struts 1.1 Validator
To benefit from the article you need to have some experience with Struts, either version 1 or 1.1 RC. If you're new to Struts, I've written a couple of introductory articles, which quickly will bring you up to speed. They're listed in the resources section at the end of the article.

Before Struts 1.1 we had two choices of implementing forms validation: either in the ActionForm class or in the Action class. Both used the same technique to tell the Struts framework that validation errors were found: an ActionErrors object was returned holding a set of ActionError objects. Each of these described a specific validation error.

Architect Struts applications for Web services
In this article, you'll learn one route to this goal. You'll see how to architect an application based on the open-source Struts framework that can integrate with Web services. You should have some background in J2EE and Web services before you begin; I'll briefly introduce the Struts framework and the Model-View-Controller (MVC) pattern here, but if you haven't encountered them before, you should check out the Resources section below for more information.

Struts is an open-source framework for building Web applications based on the MVC pattern. Struts encourages application architectures based on the MVC pattern and provides services common to most Web applications.

In a Struts application, you can architect the Model layer so that the business and data retrieval logic are easy to reuse. This layer is responsible for running the application's business logic and getting the relevant data (for example, running an SQL command or reading a flat file).

Generate Web Output in Multiple Formats and Languages with StrutsCX
As an open source add-on for the Apache Jakarta Struts Framework (or Struts), StrutsCX has its roots in a pure XML- and XSLT-based, multi-language and multi-layout project. With StrutsCX you can easily generate different output formats like HTML, XML, or PDF using standardized XML and XSL technologies. Struts serves as the ideal server technology to perform these XSLT transformations.

StrutsCX also enables you to save and output content in different languages and encodings. Handling information in English, German, French, Spanish, and Italian?as well as in Chinese, Korean, Arabic, Russian, and any other language in the world?is simple with StrutsCX. 

Writing a Simple Struts Application using WebSphere Studio V5
This article describes how to create a simple Struts example using the built-in support in WebSphere Studio Application Developer 5.0.

Struts is an open source framework sponsored by the Apache Software Foundation. You can use it to maintain and expand Web applications. IBM ® WebSphere® Studio Application Developer Version 5.0 (hereafter called WebSphere Studio) has built-in Struts support for Struts 1.02 and 1.1 (beta 2). The Struts Configuration editor in WebSphere Studio allows easy modifications of the struts-config.xml file. This article describes how to create a Struts example using the built-in support in WebSphere Studio.

Put Struts' HTML Tag Library to Work 
This article explains the relationship among those classes and their roles in the application. Note that you must copy all the library files to the WEB-INF/lib directory yourself; they are excluded from the downloadable ZIP file to cut download time.

The Login application is a simple Struts application that will show how to use the HTML tag library, especially the form-related tags and the tag for error handling.

Learn Struts' Form-Related Tags
In this article series, I explained how to configure a Struts application to use the Struts HTML tag library. I also presented one of the two groups of tags in this library: tags that you can use independently. Here in Part 2, I'll continue with the second group of tags: the form-related tags.

The form-related tags consist of the <form> tag itself plus all tags that must be used inside it. For example, the <text> and <password> tags are form-related tags because it does not make sense if they are not placed inside a form.

Struts from Scratch
his article lays out the steps for installing Struts and a basic "Hello World!" sample application 'from scratch.' It assumes that you are brand new to Struts and that you're also fairly new to Java ServerPages (JSP) and programming in general.

The goal of this article is to go through the basics of installing and building a Struts application; the details of the application itself are not covered. The application is taken from my recent book, Struts Kick Start, and is covered in detail there. 

Struts Kick Start
"I started learning how to use the Struts framework, after I became fed-up with hacking web applications together with the digital equivalent of "Duct-tape Engineering". At that time there were no books available for the budding Struts developer, "Read The Fine Manual" was not an option ... you read the website, you read the code or you asked questions on the mailing list. This situation finally changed this fall with the release of a flurry of titles dedicated to Struts. I present here my thoughts on one of the latest: "Struts Kick Start".

Implementing Templates with Struts
The article covers some basic templating ideas in relation to portals, explains templating support in Struts, and rounds up with a discussion of Struts Template tags vs. Tiles, another templating mechanism.

Struts is a Web application framework that facilitates the development of Web sites using the MVC architecture. It provides a set of classes, tag libraries, and interfaces which can be used as the basis for Web development. Struts is an open source project and is developed under the Jakarta-Apache forum.

As with all Jakarta projects, Struts can either be downloaded in source code or binary format. In this article,we will use Struts 1.1b2. Though not an official release, this beta release contains significant improvements over version 1.0.2.

Jakarta Struts: Seven Lessons from the Trenches
The Jakarta Struts framework has only been around for a short time, but the impact it has made for Web developers is significant. The framework is based on widely accepted design patterns and is very extensible. Although the learning curve for Struts is manageable, there are still best practices when using the framework. These lessons become apparent during development of any medium- to large-size development project. However, a much faster way to get up to speed is to leverage lessons learned by others in the Struts community. Several of those lessons are offered here and are designed to increase your productivity and efficiency when building applications using Struts.

Your First Struts Application
I'll teach you how to install and configure Struts, and present the specification and deployment descriptor of a small application built within the framework. I'll discuss the application in more detail in the second part of this series.

First, though, you need to understand a few basics about Struts. It uses the Model 2 architecture, which is based on the MVC design pattern. Model 2 applications are ideal for serious developers because they create programs that are flexible, extensible, and easy to maintain. Model 2 is the recommended architecture even for simple applications, so it's crucial to have a framework on which you can build this kind of application quickly and easily. Apache's Jakarta Struts Project from Apache Software Foundation is such a framework, and this example will help you understand how to use it.

Struts and Tiles aid component-based development
This article does not discuss the MVC platform in depth. For that, see Malcolm Davis's developerWorks article entitled "Struts, an open-source MVC implementation." This article you're reading now discusses changes to Struts since Malcolm's article was published, including the Tiles library. For the code walkthrough, this article covers only the steps required for a minimal setup with Jakarta Tomcat 4.0 (Catalina). Please consult the manuals with your application server if you do not use Tomcat.

Struts and Tiles are aids for Web development, so you'll need to set up a Web container to experiment with them; the process for setting up Tomcat as your container and then the Struts and Tiles packages is described in the next section, in step-by-step fashion. These instructions also show you how to install this article's sample code. Once you've finished with that, you're ready to continue with the article. The Example 1 application doesn't take advantage of Struts and Tiles; it demonstrates the page-centric approach. By comparing it with Example 2, you'll see how much more structured and manageable Struts and Tiles can make your Web development. Finally, Example 3 demonstrates how straightforward it is to add functionality to a Struts and Tiles Web application that's already up and running.

Applying the MVC Design Pattern Using Struts
Struts, a Jakarta project, provides a framework for writing applications using the MVC architecture. Struts uses "ActionMapping," which enables the servlet to turn user requests into application actions. ActionMapping usually specifies a request path, the object type to act upon the request, and other properties as needed.

The Action object used as a part of the ActionMapping is responsible for either handling the request and sending the response back to the appropriate view (normally a Web browser), or passing the request along to the appropriate model. 

Boost Struts with XSLT and XML
In this article, we introduce Model 2X, a scheme that further enhances Struts. By replacing JSPs (JavaServer Pages) with XML and XSLT (Extensible Stylesheet Language Transformations), Model 2X offers an even better approach to separating logic and presentation. We start with an introduction to Model 1 and Model 2, describe how Struts implements MVC, and finally show how XML and XSLT can be used to improve the existing models.

While the Struts/JSP approach features many advantages over other models, it exhibits several drawbacks:

1. As in Model 1's case, nothing prevents a developer from embedding application logic into the JSP. Experience shows that many developers actually fall into that trap, often to perform a quick fix. This can lead to applications that are hard to understand and maintain.

2. The JSP syntax is not XML compliant and therefore fails to guarantee that resulting XML or HTML documents will be well formed.

3. The developer must learn new APIs -- the Struts tag libraries. Experience shows that gaining an understanding of the Struts tag libraries, particularly the bean and HTML libraries, can take a long time.

4. You can't implement a real processing pipeline in the view with JSP. Only basic includes and forwards are possible, effectively limiting the view's flexibility. For example, separating layout and style proves difficult.

5. With JSPs, you must recompile after every change, which can be time consuming. Just ask any JSP developer waiting for page compilation after every mouse click. 

Learning Jakarta Struts, Part 3
This is the final article in a three-part series on the Struts framework.

In the first article, Introduction to Jakarta Struts Framework, I defined the Struts framework, discussed what it can accomplish, and provided an overview of the various components used throughout the framework. In the second article, Learning Jakarta Struts, I described building a simple sample application from scratch using Struts 1.0. This article will show you how to use the Struts tags to access the ApplicationResource file from a JSP.

Learning Jakarta Struts, Part 2
This is the second article in a three-part series on the Struts framework. In the first article, Introduction to Jakarta Struts Framework I defined the Struts framework, discussed what it can accomplish, and provided an overview of the various components used throughout the framework. In this article I describe building a simple sample application from scratch using Struts 1.0. The third article will show you how to use the Struts tags to access the ApplicationResource file from a JSP.

Taking a step-by-step approach should open some new doors and show the potential of using Struts in your application development. If you aren't familiar with Struts terminology, take a quick read through the introductory article.

Introduction to Jakarta Struts Framework
This article focuses on one aspect of that development process: how to use the Struts framework to assist in front end integration. Struts is an open source framework developed for encouraging an application architecture based on the Model-View-Controller (MVC) design paradigm, useful in building Web applications with Java servlet and Java Server Pages (JSP) technology.

This article assumes a working knowledge of JSP, servlets, custom tag libraries, and XML. Refer to some of my previous columns on JSP customer tag library development if you need to brush up on the basics. This column is Part One in a two-part series on using the Struts framework.

Struts, an open-source MVC implementation
This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology. Struts can help you control change in your Web project and promote specialization. Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation.

If you have worked on a large-scale Web application, you understand the term change. Model-View-Controller (MVC) is a design pattern put together to help control change. MVC decouples interface from business logic and data. Struts is an MVC implementation that uses Servlets 2.2 and JSP 1.1 tags, from the J2EE specifications, as part of the implementation. You may never implement a system with Struts, but looking at Struts may give you some ideas on your future Servlets and JSP implementations.

Integrating and Mapping a Web Application MVC Pattern
Struts is an implementation of the presentation tier using MVC. The Struts controller encapsulates the presentation logic, handling the interaction of the JSP pages view with the JavaBeans model, which might access a database through JDBC.

Struts delivers on its promise of a framework that follows the MVC design pattern by effectively segregating the various components into a small set of extendable classes. Also note the declarative nature of its XML-based action mappings and JSP tags.