Well, you know, an ActionForm is what it is. :)

On this list, most people will tell you it belongs to the View. 

Other frameworks with similar architectural members call gizmos like
ActionForms the "Model". Why? Because in classic MVC, the View
subscribes to the Model, most often as an Observer. In a conventional
Model 2 application, the View acquires data from the servlet contexts
--- meaning the servlet contexts become the M in MVC. The JSP Tags
"observe" critters like the ActionForm in the servlet contexts, hence,
the argument would go, it's part of the Model. Snagging data from the
contexts is not quite the Observer pattern, but it does have the same
effect.

Of course, since most, or all, of that data actually comes from a
database, a lot of people tend to think of the database as the Model.
And, in the big picture, the database usually is the one-true Model.
But from the narrow perspective of Model-2 MVC, the JavaBeans we stuff
into the servlet contexts do become, for all intents and purposes, the
Model.

One way to think of it is that our Views aren't designed to gaze upon
the Model directly. So, the Controller creates a specialized form of
the Model and places that chunk in the servlet context, where the
Views can see it. From the View's perspective, the dynamic data in the
servlet contexts is the Model. (Even though we know it's just a
runtime snapshot of one sliver of the most-high database Model.)

As to ActionForms in particular, personally, I consider everything in
the Struts core (Action package) to be part of our Controller layer.
The taglibs are our View, but the rest, including the ActionForm, is
part of the Controller. The Controller simply shares the ActionForm
with the View by putting it the Servlet context (so it becomes part of
the Model as observed by the View).

Of course, in the end, it doesn't really matter. The ActionForm is
what the ActionForm is. The one thing it is not, is a business object.
The Controller creates it from the request, and it bounces around
between the Action and the JSP Tags (or other View Tools). But, it
should *never* go past the Action into another layer.

Aside from that key best practice -- the ActionForm should never go
past the Action into another layer -- we might as well be discussing
how many angels can dance on the head of a pin :)

-Ted.

On Mar 31, 2005 11:40 PM, atta-ur rehman <[EMAIL PROTECTED]> wrote:
> Dea all,
> 
> I'm sure I've seen this topic before! Just can't remember where and
> google won't help either! Can anybody please explain which MVC layer
> form belongs?
> 
> TIA.
> 
> ATTA

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

Reply via email to