In the Javadoc for ActionServlet, the 'mapping' init param is marked as
deprecated. However, as far as I can tell, it's actually not supported. I'm
wondering, which behaviour was intended?

It would seem that to support a global default for the ActionMapping class,
we would have to modify the ConfigRuleSet class to have a setter for the
default class to be used. This would also apply to changing the default
classes for other objects defined in struts-config.xml.

Changing the global default for the action mapping class is something I
would like to be able to do. I have an application with many, many mappings,
and I need them all to use my own extension of ActionMapping. (I am building
a kind of hierarchical extension to the new Struts multi-app support, and
need to extend the findForward() method.) Without a global default, I
believe I'd have to have the developers remember to specify my extended
mapping class in every action mapping in all of the struts-config.xml files.
This is likely to be error prone.

I don't necessarily need to reincarnate the 'mapping' init param, but I have
a proposal which would allow that, and also allow me to achieve what I need
by extending ActionServlet (which I need to do already).

Here's what I propose:

* Add a setter (and getter?) to ConfigRuleSet for the default action mapping
  class. We could add similar setters (and getters?) for any other types
that
  we might want as well, although I'm not sure what those might be.

* Add a new protected getConfigRuleSet() method to ActionServlet. The
  default implementation would just return a new instance of ConfigRuleSet,
  which mirrors the current behaviour. Alternatively, the default
implementation
  could be used to restore the functionality of the 'mapping' init param, if
we
  want to do that.

* Modify the initConfigDigester() method in ActionServlet to call the new
  getConfigRuleSet() method instead of creating the rule set explicitly.

If people are OK with these changes, let me know and I can go ahead and make
them. Or if people think I'm nuts, let me know that too, and I'll find
another way. ;-)

--
Martin Cooper



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

Reply via email to