This sounds to me like a rather blatant mis-use of actions. In the first
place, as Michael points out, action chaining has always been an
anti-pattern in Struts. As such, I'd be against promoting / encouraging the
use of chaining in the way you describe (or in any other way, for that
matter ;).

More importantly, it demonstrates the mis-use, IMHO, of actions as the basic
unit of server-side logic, instead of simply the end-point for a request. An
action represents the processing surrounding a complete request, not a part
of a request. If there is a need to break that request processing into
smaller units - and there frequently is - then the action should be the
orchestrator of those units. For example, a common case would be one unit to
handle the incoming request and a second to handle preparing to display the
next page. Those two units would be two separate classes, not two actions
chained together.

--
Martin Cooper


On 9/6/06, Paul Benedict <[EMAIL PROTECTED]> wrote:

For a lack of a better subject line. Let me explain.

I have some actions which are not supposed to be accessed by users. They
are mostly for internal uses within the program. Specifically, I like to
include many actions on a page and build a poor-man's portlet. So what I
have, architecturally speaking, is one action whose view triggers a
whole bunch of other actions.

My thoughts lead me to this: while it is very low probability that these
included action paths can be guessed at, I nevertheless do not enjoy it
being above zero.

I propose adding a new attribute which dictates when an action may be
invoked. I do not have a favorite choice among my ideas, but here they
are:
1) A public attribute; defaults to true.
2) A private attribute; defaults to false.
3) A dispatcher attribute; defaults to all; allows
request|include|forward|error (like the filter dispatcher attribute of
web.xml)

For my needs, I want to be able to say which action mappings may not be
directly accessed; they must be forwarded to or included by.

Paul

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


Reply via email to