You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Don Brown <mr...@twdata.org> on 2005/02/14 21:09:31 UTC
Flexible config (was Re: Action threadsafe)
This reminds me of this improvement Struts was going to make a long time
ago, pre 1.1 days for stxx. stxx wanted to extend the Struts config to
add support for multiple xslt transformations. The problem was Struts
config was stuck to a rigid DTD. A hack was introduced where you could
add Digester rules to support your new config elements, but you had to
either turn validation off or replace the DTD all together.
The solution, I believe, is to move to a XML schema-validated Struts
config file. Give the usual Struts config a namespace to validate
against. Then, allow any Struts extension the ability to define their
own namespace and have their config intermingle with the normal Struts
config. This allows an extension the ability to add elements and
attributes wherever it wants without compromising validation. It has
the added side benefit of making it possible to reduce the size of the
element names, since we don't have to make them unique.
If we did this, and the code detected an old DTD-based config, we just
apply an XSL transform and we have 100% backwards compatibility.
Don
Frank W. Zammetti wrote:
> On Mon, February 14, 2005 2:28 pm, Don Brown said:
>
>> - First level validation would be handled through commons-validator as
>>we do now. Second level, the one where validate() code would be another
>>specified method, defined in the action mapping or method annotation.
>
>
> This point made me think of something... What about the idea of adding the
> concept of an <action-bean> in struts-config?
>
> Instead of having a bunch of new attributes to an <action> mapping, what
> if you instead define an <action-bean>, just like you define a <form-bean>
> today, that declares what your validate method is, what your primary
> execute() method is (if defined you treat it like a "classic" Action),
> maybe what chain it should use (where Don I think was asking how to figure
> out what process-* chain should be used), whatever else everyone thinks we
> need.
>
> Then, in your <action> mappings, you simply reference the appropriate
> <action-bean> entry, just like <form-bean>'s are.
>
> That might make for a nice separation, and also would allow multiple
> <action> mappings to share the same Actions configured in the same way,
> and all of this is done without potentially duplicating a lot of
> information in each <action> mapping, especially when multiple mappings
> use the same Action.
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org