Original introduction

Improve, my employer [now Open Wide Technologies] - and a lot others company out there - are working on big web applications (not static websites), which have the following common requirements:

  • Hundreds of screens
  • Developers with very different backgrounds, including people with 20 years of experience in Cobol and without a good knowledge of new technologies.
  • All developers need to be able to develop application screens.
  • The application has 3 types of very simple screens: selectors (selecting information), lists (viewing lists of information) and cards (adding/editing information).
  • The look and feel of the applications is very strict. The screen designers have no freedom to choose it.

The usual way to build a screen is to use HTML code mixed with Java code and tags in a Jsp. So developers need to know both languages. They also need to know the differences between IE, Mozilla/Netscape and Safari/KHtml rendering engines to write standard-compliant, cross-browser HTML code. In order to answer all those constraints, Improve developed some years ago its own framework to build such applications. The goal was to increase the speed-productivity of writing the interface, without giving up on maintability of the application. The result was a framework in which the screens where described as a succession of simple tags.

Now Improve is moving to Struts and would like to add special features to Struts to support the development of this kind of applications. What we would like to be able to do is to reduce the application screens development time by a three-fold factor, which we did with our framework.

We added these features be added to Struts via a tag library named Struts-Layout. Here are the main principles/functionalities:

  • only 3 types of screens (selectors, lists, cards),
  • standardized layout (created by the library tags).
  • allow people with no special Java or HTML skills to rapidly build pages.
  • easy customization with CSS.
  • reduced JSP code length
  • better readability
  • easier maintenance
  • faster development

Of course, those principles reduce the layout possibilities of a web page; you can always use the usual html Jsp + Struts tags or templates when in need.

We have already begun to rewrite our framework tags to Struts compatible tags. Improve is going to carry on this development because Improve has a need of such tags. However, Improve would also like to share it with people who might find it useful and possibly see it incorporated into Struts as an extension. Please have a look at the already implemented tags and the example.

The Struts-Layout Team