Ahoi,

first all thanx for this real fantastic framework, excellent work!.
We here at ConSol are developing a web frontend for our helpdesk
software based on struts and for the time being we have about 30
actions, 35 custom tags, 110 JSP-Pages (without any explicite java
code!) and appr. 20k lines of Java code and it turned out that struts
was a great support from the very beginning.

In course of the development during the last three month, we made some
extensions, which we would happily contribute to struts.

Our extensions are  listed below briefly. If there's some interest
in some of them, please leave a note (note that I will be absent till
wednesday in a week, so don't expect a response before)

* Followups. Followups are a simple mechanism for an action to return
  to the place before it was called. Therefore we implemented a
  FollowupStack which is passed around in URLs and Forms (as hidden
  parameters). An action only needs simply to call "getFollowup()" in its
  perform() method to get a forward to the previous action. (Therefore
  FormTag and Action was extended).

* Action documentation. For documentation of actions, we introduced
  three new javadoc tags: @input (input parameters expected by this
  action in its request) , @output (results put into request scope)
  and @forward (possible forwards of this action). To support these
  new tags we've written two javadoc Doclets: The first is extending
  the standard doclet for rendering an HTML table in the class
  documentation in javadoc. The other one creates XML-output, which we
  use with an XSL stylesheet to convert it to the stylebook DTD for
  the online documentation.

* Hidden Parameters. Our extension of Action has an
  "addHiddenParameter()" method which put hidden parameters into
  request scope which our subclassed FormTag renders as
  HTML-Tags. With this method it is very easy to push parameters around
  to several actions (without polluting session scope).

* Image Buttons. This an extension to SubmitTag for rendering image
  buttons and handling enabled/disabled buttons based on the existance
  of some object stored in request scope. Our actions can check for the
  trigger of a submit button regardless whether it was submitted as a
  submit button or an image-map.

* Extra parameters in URLs. Our extended "Action" gives subclasses a
  change to append extra parameters to a forward by overriding a
  "getExtraParameters()" which will be appended to a forward. 

* From action to JSP. Not really an extension, but it proved for us to be
  very useful to stick to the simple paradigm, that a page is only
  accessed via an action and any JSP-Page is only referenced via an
  action. JSP pages are really only used for rendering the result
  calculated by the previous action, which passes them to the JSP page
  by putting them into request scope. Though it might look rather
  restrictive, this design descision proved to be very useful mainly
  due to its simplicity. 

Well, thats all I remember for the moment. We developed some custom
tags, which might prove to be useful on its own (and not only for our
application), but that's another story.

cu....
-- 
                                                        ...roland huss
                                                             consol.de

Reply via email to