On Tuesday 01 April 2003 03:59 pm, Igor Shabalov wrote:
> You can not possibly imagine how useful and powerful can be good GUI tool
> when you handle really big and cumbersome struts-config file.         Actually it
> can give you much more capability to implement such pipes, filers and
> “assembling” of application from pre-defined action components.

Why, I can.

Paul


>
> On Tue, 1 Apr 2003 15:12:34 -0500, Paul Yunusov <[EMAIL PROTECTED]>
>
> wrote:
> > On Tuesday 01 April 2003 03:00 pm, Thorin Linderholm wrote:
> >> The static method you suggest would be very cumbersome to implement and
> >> maintain, requiring hard-coding calls to each bit of functionality I
> >> wanted
> >> on each page (aghh!)  But thanks for the reply :-)
> >>
> >> I have to disagree that 'If they are a business tier concept, Struts
> >> should
> >> have nothing to do with
> >> chaining them.'
> >>
> >> The struts ActionServlet and the page mappings in the struts-config are
> >> the
> >> 'controller' portion of Struts.  The whole of Struts is much more than
> >> the
> >> 'C' in MVC.  It has taglibs for supporting the V, and actions are in
> >> fact
> >> always implementing buisness logic (they decide what page to go to by
> >> returning a 'forward': definite buisness logic, if there is such a
> >> thing.)
> >> And that's always been a gray area in MVC for me: does all the buisness
> >> logic belong in the model, or can it also go in the controller?  Or is
> >> there an MVCC where there is a 'view' controller and 'buisness'
> >> controller
> >> (which seems a bit redundant to me.)
> >
> > Well, at one point you will wonder which is more cumbersome: coding
> > Action classes or having a mile-long struts-config.xml.
> >
> > Paul
> >
> >> -----Original Message-----
> >> From: Paul Yunusov [mailto:[EMAIL PROTECTED]
> >> Sent: Tuesday, April 01, 2003 11:43 AM
> >> To: Struts Users Mailing List
> >> Subject: Re: design question about action chaining
> >>
> >> On Tuesday 01 April 2003 02:30 pm, Thorin Linderholm wrote:
> >> > I have been tasked with porting an existing web application with it's
> >>
> >> own
> >>
> >> > proprietary controller architecture to using Struts.
> >> >
> >> > As they are both web controller architectures, they have many
> >>
> >> similarities,
> >>
> >> > but I'm running into one difference in overall architecture that I'm
> >>
> >> having
> >>
> >> > difficulty resolving.
> >> >
> >> > This difficulty is most closely related to the 'action chaining' posts
> >>
> >> I've
> >>
> >> > been able to find in the mailing list archives.
> >> >
> >> > Specifically, I have over 400 pages mapped to various actions (our
> >> > controller calls them that, and they're roughly synonymous with struts
> >> > actions.)  However, our controller allows specifying a list of actions
> >>
> >> to
> >>
> >> > execute on a per-page, and per-page-set basis.  In other words, we can
> >> > assign an action like 'Ensure Session initialization has been
> >> > completed/Initialize session' to every page in the site with a single
> >> > mapping (assuming you've already listed all the pages.)  Or you can
> >> > assign it to 90% of your pages if you happen to desire.  We have
> >> > approximatly ten actions that happen on between 60-99% of the pages on
> >> > our site.  If we
> >>
> >> were
> >>
> >> > to directly translate this to the struts mapping system we would end
> >>
> >> up
> >>
> >> > having to re-specify those ten actions on most of those 400+ pages,
> >> > creating long action chains for each page (a whole lot of duplication:
> >>
> >> hard
> >>
> >> > to maintain, easy to get wrong, etc.)
> >> >
> >> > So, conceptually, I want to be able to apply a few different bits of
> >> > logic to whole sets of pages.  Some of those 'bits of logic' (actions
> >>
> >> if
> >>
> >> > you will,) interrupt the process and forward to a different page (page
> >> > access rules for instance.)
> >> >
> >> > There are several possible solutions that I've come up with, but so
> >>
> >> far
> >>
> >> all
> >>
> >> > of them involve either hacks, extending struts (which happens to
> >>
> >> partialy
> >>
> >> > eliminate the reason I'm being required to move to Struts, and so
> >>
> >> isn't
> >>
> >> > very favored by my supperiors,) some complicated java inheritance
> >>
> >> hierarchy
> >>
> >> > where I inherit non-related functionality in those ten actions into a
> >>
> >> set
> >>
> >> > of compound actions, each inheriting in the set of functionality we
> >>
> >> want
> >>
> >> > (lame,) or I could implement a 'view preprocessor' of some kind that
> >> > parallels the struts-config and defines processing that I need to do
> >>
> >> for
> >>
> >> > each view page (which requires me to have two completely redundant
> >>
> >> sets
> >>
> >> > of page mappings, and apears to me to obsolete the need for Struts in
> >>
> >> the
> >>
> >> > first place (if we were to ignore it's tag libraries and other helper
> >> > classes which we also already have proprietary equivalents to.)
> >> >
> >> > I'd love to hear from anyone about other possibilities, or (even
> >>
> >> better,)
> >>
> >> > pointers to somebody/some package already solving this problem.
> >> >
> >> > Another way to look at the whole thing:  How have other people solved
> >>
> >> the
> >>
> >> > problem of being able to apply a set of page access rules to arbitrary
> >>
> >> sets
> >>
> >> > of pages without having to create a system parallel to struts that
> >> > re-defines every page in the application?  Or do people consider a
> >>
> >> parallel
> >>
> >> > system that respecifies every page as the proper design?
> >> >
> >> > Thorin
> >>
> >> Ever thought of defining functionality equivalent to your proprietory
> >> "actions" in classes that don't extend the Struts framework and chaining
> >> calls to instances of these classes in your Struts Actions?
> >>
> >> This is a static solution as opposed to having struts-config.xml support
> >> some
> >> sort of action chaining tags but Struts Actions are only HTTP adapters,
> >> and
> >> chaining them violates the spirit of the framework. That's why I think
> >> implementing "chaining" with non-Struts classes is a better idea.
> >>
> >> Your  "actions" seem to be pretty fine-grained ("Ensure Session
> >> initialization
> >> has been completed/Initialize session"). If session in this case refers
> >> to
> >> the HttpSession, then they are almost as low-level as the Servlet API
> >> (why?).
> >> If they are a business tier concept, Struts should have nothing to do
> >> with
> >> chaining them.
> >>
> >> Paul
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]


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

Reply via email to