Struts Bridge

## Summary

The Struts Bridge allows Struts and Struts Tiles applications to be run as JSR-168 compliant Portlets.

Existing or new Struts Applications can be transparently deployed as Portlet Application or Web Application.
The Bridge wraps and enhances the native Struts Framework to overcome its limitations and incompatibilities with the Java Portlet Standard requirements.

An existing Struts Application can be used as a Portlet without changes to the code or JSP files if:

- a few common sense rules, based on a proper MVC architecture, are followed for the Struts Action configurations
- Struts Tags are used for rendering all resource paths (like images) and action links

If a Struts Portlet doesn't use Portlet specific features, it can also be accessed and used as Web Application at the same time. Even testing the Struts Application can then be done completely independent of a Portal.

The Struts Bridge is developed to be independent from specific Portals and uses only a very small interface to the Portal to be able to get access to the Servlet environment at runtime. As all JSR-168 Portlet Containers are required to build upon the Servlet specification, providing this interface for a specific Portal is usually very easy to do, if not done already.

The Apache Portals Jetspeed-2 Portal provides this interface natively, as well as example Struts Portlet Applications using the Struts Bridge like a JPetstore Portlet.