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]