In The Beginning...

Apache Struts relies on a single XML file to define the workflow for the web application. This XML file is usually called 'struts-config.xml'.

At the start of development the struts config XML file looks relatively simple and quite manageable. The same can also be said of most Struts demos and sample applications. To an extent it's true, these XML files are quite simple and manageable.

The problem is that even for tiny applications, the config XML file grows. You will soon find yourself adding Actions here, squeezing in Form Beans there and attaching Forwards just about everywhere! Before long you'll find yourself with a giant monolithic XML file which has quickly become a burden, nay a nightmare, to trawl through and maintain.

XML Maintenance -> XML Confidence

In development "maintenance" is a always a bad word (unless followed by the word "free"!) and XML is no exception. Once you have added a couple more Actions, shuffled around a few Forwards and renamed the odd Form Bean you would have discovered one of two things. Either:

Your XML file is a mess
- and you're not quite sure if you've updated all the Forward references to that last | Action you renamed.
Your XML file is tidy
- but boy, it sure is getting time consuming to fully trace a change back through the | XML making all the necessary changes.

You see, an XML file is like a very loosely typed computer language: there is no easy way to ensure your Actions correctly reference your Form Beans or if your Forwards reference real Actions. As long as your XML is well formed, who's to say that all the values and names tie up? More often than not mistakes made are caught by run time exceptions. It then becomes a tedious and time consuming job to trace the exception back to the config XML.

Bring in StrutsGUI! Because StrutsGUI automates the generation of your config XML you can always be confident that your XML is completely valid, present and correct.

XML Beautiful

Most GUI editors, easily seen in the world of HTML, double or even triple the size of their files by generating code that pointlessly set variables to their default values. StrutsGUI on the other hand knows about default values used by Struts and neglects to include them in XML generation, thus keeping your XML neat and tidy.

Visualise Your Goals

"A picture tells a thousand words." In IT development this idiom still remains true. StrutsGUI offers a means to model your Struts application in a visual manner that far surpasses the usual textual alternative.

Rather than attempt to reinvent the wheel, Alien-Factory sought to find an existing GUI that could be reused. Microsoft's Visio, already rife within the workplace, boasted an extensible and user friendly user interface. All qualities required by StrutsGUI and as such Visio was chosen for the front end of StrutsGUI.

User Friendly Not User Ugly

In the Struts "Newbie FAQ" one of the first questions asked is :

Why are some of the class and element names counter-intuitive?


Even the makers of Struts admit their naming conventions are confusing! Which brings me to another goal of StrutsGUI: to abstract the User from the unfriendly and counter intuitive naming conventions of the Struts config XML.

Throughout StrutsGUI I have restrained from using the XML element and attribute names as defined by Struts. Instead I have placed thought and consideration into providing more descriptive names, to help both beginners and advanced users alike.

Because StrutsGUI abstracts the User from the XML, this goal is perfectly valid. Although, the original XML names are mentioned on the property pages, just to ease those die hard few into the StrutsGUI way of thinking.

At The End...

There is StrutsGUI :: Designing the Future.