<Ted Husted>
> > What we really need is a pluggable 'ViewHandler' class which defaults to
> > JSP forward/redirect processing, but can easily handle XML/XSL, Velocity
> > etc....

> <Pete Carapetyan>
> > Expresso has implemented that class. It is coincidentally named exactly the same
> > name. Seems to work well, but right now it only serves up three of the many
> > possibilities.

<Ted Husted>

> What does it do?

We have already abstracted a set of view components which stay "generic" in a
controllerReponse object from the Controller. (A Controller is a set of struts Action
classes extended with additional functionality)

When the ControllerServlet gets ready to process the response, it first checks the
controllerResponse for the appropriate viewHandler, and then does a
class.forName(viewHandlerClass) on that handler, which does the final processing.

So theoretically, our Action classes can stay agnostic. In practice, they still might
be focused towards their specific consumer, but not by necessity, so you can sometimes
even just switch consumers to XML, for example, if you are trying to debug another
viewHandler.

To extend things beyond the jsp and xml handlers which contributors have already
created, you create your own viewHandler by extending the abstract ViewHandler class.
For example, I am attempting to create one now that processes a subset of XmlRpc,
which my Action class does not even have to know about.

Please understand, Expresso is NOT Apache, in that we are small group of core
contributors that enjoy sharing a code base. It can get confusing, because the site is
sponsored by JCorporate.com, so you kind of have to see through all that to get
involved, but once you get to know the guys, it isn't so different than working on
your own code base with a very few other buddies doing the same thing.

As individuals, each of us seems to have a distaste for recreating what already works,
which is why we integrated and try to stick closely to Struts and so many other Apache
projects.  Please feel welcome, if you can get past the front end without being
confused. Or, just download the code base, and use the pieces that work in your own
stuff. (Obeying the licensing of course.)


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

Reply via email to