I have a Struts theory question on use of action forms versus java beans
for read-only data.

We have extended workflow on our website such that the same form can look a
bit different depending on where you are in the workflow.
For example, the quote request will have limit and retention fields in the
business request section.  Once you get to quote, those fields are
read-only and there's an additional quote amount field.  When the client
requests binder, all those fields are read-only and there is a checkbox.
Once bound, everything is read-only.

There is some disagreement on the team as to how to handle this case.  We
will obviously have four JSPs, one for each of these presentations.  The
question is the data mapping to beans.

Half of the team feels that to use Struts in its purest sense, we need to
have java beans that represent the read-only data, and action forms to
represent the editable data.  That would mean four action forms, one for
each JSP.

The other half of the team wants to re-use the same action form for all
four cases, bean:define it in the session, and use bean:write to print out
the data if read-only.  The major advantage is simplicity - we have one
bean that represents all of the data - there is no need to understand what
part of the workflow we are in when translating the data from the data
model to the presentation layer beans.  It is also easier to understand for
an HTML programmer or developer that the same bean is used regardless of
whether it is a bean:write or any of the html tags.

We certainly don't want to end up in a position where we have broken the
framework and hurt our extensibility in future releases.  The first
scenario would seem to follow the framework more closely, but in this
special case, is it a problem to deviate and use the ActionForm for what it
is - a bean?
We would appreciate any advice and experiences.
Thank you.


Lisa Stephens
GeneralCologne Re
Trumbull, CT
203 328 5227

Reply via email to