Hope no one minds an extra two cents here...
I've personally chained actions on a couple of ocassions, but what I find myself doing more of in cases like this where there is a "setup Action" and X number of "processing Actions" possible for a given screen is I code the setup Action in such a way that the other Actions can simply instantiate it and call execute(). It's relatively simple to make it function as a normal Action, as well as basically a helper class for another Action (and without any special branching logic or anything like that). This is very similar to chaining, but doesn't incur the overhead (however much it really is) doing a forward, and doesn't get into all the complexity you can sometimes run into with two request contexts in essence when you chain (i.e., ActionForms reseting when you don't want them to and dealing with tokens and all that jazz).
Having only taken a cursory glance at JSF at this point, and attended a conference or two where it was discussed, I've had mixed feelings on it, but I do like the relatively tight coupling you are referring to. I too am generally of the "DECOUPLE EVERYTHING!" mindset, but in this case I think it makes sense. Frankly, I think Microsoft got it mostly right with ASP.Net, and JSF can in many ways be compared to that conceptually.
The flip-side (where my mixed feelings come in, partially) is that I've never really bought into the whole "call the server to handle every little UI event" model. I suppose that's a separate debate though :)
-- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com
Dakota Jack wrote:
Hello, again, Jan,
Having read Ted's response, I can now understand what you were saying. I just could not see why doing something like chaining an action made any sense or believe that people actually do that. What I would naturally do is to provide a common helper class, Setup.java (or Result.java), rather than a helper Action, ResultAction.java or even a framework to hand the whole issue. Am I missing something? I have in essence asked the same thing of Ted.
Maybe the difference is that I just have not even considered chaining actions. I thought that was just an example of something silly that some people might do. And, to my embarrassment, I guess that some people think that is a good idea?
Jack
On Tue, 4 Jan 2005 15:28:05 -0000, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Jack,
A use case is:
- Two struts actions (say CreateAction and EditAction call the same jsp to view the result (say result.jsp). - This result.jsp needs some setup (eg. a list of items for a selection box). - The natural way to populate such a list in struts, is in the action. - To prevent having the logic to populate the list both in CreateAction and in EditAction, some users create a new ResultAction, where they do the view preparation. - Then they chain the action (this is controversal stuff): . In CreateAction they do creation logic, and than forward to ResultAction. . In EditAction they do edit logic, and than forward to ResultAction.
As discussed in bug 16107: http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16107
Regards, Jan
-----Original Message----- From: Dakota Jack [mailto:[EMAIL PROTECTED] Sent: dinsdag 4 januari 2005 15:34 To: Struts Developers List Subject: Coupling, Struts and JSF
Craig,
I have been trying, again, to understand your position on Shale. In the wiki, you say "[y]et in Struts 1.x, for example, the setup logic and processing logic end up in two different Actions, requiring multiple action mappings". Could you expand on this a bit, remembering, if you would, that I am not a novice. I have not run into a problem here and wonder what you are talking about in concrete terms. I personally do not run into this problem and am philosophically counter to the idea that coupling can be good. I am pretty "knee jerk" in favor of decoupling where possible. This is one of the main reasons I have difficulty with JSF. I really am contrary to the coupling.
Jack
-- ------------------------------
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~
"You can't wake a person who is pretending to be asleep."
~Native Proverb~
"Each man is good in His sight. It is not necessary for eagles to be crows."
~Hunkesni (Sitting Bull), Hunkpapa Sioux~
-----------------------------------------------
"This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation."
--------------------------------------------------------------------- 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]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]