Greetings,

A few thoughts about the Action Form:

1) ActionForm is a view object
2) ActionForm is populated by ActionServlet mapped to request parameters
3) ActionForm should NOT be passed into the Business Logic Tier but should
stay in the application Tier
4) ActionForm should NOT be used as a Model Bean.

Being as these are true and it sometimes seems to cause extra coding to
translate form values to beans. In other words. When I write a form and it
contains values that need to be passed to a bean that is then passed to a
business object. The process involves the following:

1) Write ActionForm to collect request (data or use DynaActionForm)
2) Write a model bean that will receive some or all of the data from the
ActionForm
3) Use BeanUtils within an Action class to transfer values from bean to bean
4) Pass bean to business object

My thoughts here are around the ActionForm using beans instead of it's own
getters and setters. Is there a reason why we don't have the ActionForm
instantiate beans to be populated. That way those beans can easily be
extracted from the ActionForm and passed into the business tier. The
ActionForm could be configured to instantiate and populate certain beans. It
would be nice to allow for multiple beans to be configured and if the beans
have a common setter and getter then both instantiated bean setters will be
populated with request data. Once the beans are populated with request info
those same beans can be passed into a business tier using the Action class
or they can be passed back to the view wrapped with the ActionForm. I know I
am thinking simplistic at this point. But, I think the idea has some sound
qualities. Maybe this is already implemented and I am just off my rocker or
maybe it just sucks. I would be interested to hear any thoughts on this. So
the process would go something like this:

1) Write model beans
2) Configure ActionForm to populate certain model beans with request data
3) Allow for validation of values and any other ActionForm methods to be
performed.
4) pass ActionForm with associated beans onto Action class or return to view
with errors
5) use Action class to extract beans from ActionForm and pass them into
Business Tier

This thought was spawned during a discussion with a colleague regarding
passing ActionForms into the business tier. I felt it was a bad idea because
it is tying you biz tier too tightly to the app tier. But his rebuttal was
that the alternative was that we wind up coding more and gaining very little
(i.e. writing identical code just to populate a form then pass that value to
a bean). How often are we going to be running this outside webapp using
struts, anyways?

I know there is DynaActionForm but I have also heard there are some
shortcomings on it. What are those shortcomings? The issue here seems to be
the extra coding. I know the combo of the DynaActionForm and BeanUtils
allows for a sort of what I am talking about. You only have to write the
model bean then use BeanUtils to populate it with the DynaActionForm values.
Yet, I have also tried to run DynaActionForm side by side with Validator and
I have run into problems. Anyways, it just seems more appropriate to use
concrete Bean classes and that is why I am providing the aforementioned
idea.

Any thoughts?



Definitions:
-----------------------------
Business Tier - contains model beans and business logic
-----------------------------
Application Tier - Struts Controller and data marshalling
-----------------------------
Web Tier - Application Server



Brandon Goodin
Phase Web and Multimedia
P (406) 862-2245
F (406) 862-0354


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to