Actually, Hubert,
With SimpleDispatchAction this makes a lot of sense. I would really go for this and think I will work on that too. I don't think it makes a lot of sense for the present actions, however, because they are so wedded to the ActionMapping. SimpleDispatchAction allows that but the present actions require it.
I definitely, however, think that this would be vastly preferable to the SimpleDispatchAction code and would be very useful even without a MySuperAmazingBaseAction, which probably is Action? LOL ;-) This might even be something, as a util, that I would see as not a "bloat".
Michael McGrady
Hubert Rabago wrote:
What I had in mind was moving the "find which Action method to call then call it" logic to a utility class, so that if I needed that functionality, I could use it without having to inherit DispatchAction or one of its subclasses. This way, I wouldn't have to choose between having a BaseAction that's used by all the Actions in my application and one of the DispatchAction flavors.
Like this:
public class MyDispatchAction extends MySuperAmazingBaseAction { public ActionForward execute(_usual_params) { RequestUtils.dispatch(this, _usual_params); }
public ActionForward add(_usual_params) { }
public ActionForward edit(_usual_params) { }
public ActionForward save(_usual_params) { } }
Hubert
On Thu, 16 Sep 2004 22:07:30 +0100, Niall Pemberton
<[EMAIL PROTECTED]> wrote:
Hubert,
Is this what has already happened in DispatchAction with the getMethodName() method that has been added since Struts 1.2.0?
Maybe I've mis-understood what you're saying.
Niall
----- Original Message ----- From: "Hubert Rabago" <[EMAIL PROTECTED]> To: "Struts Developers List" <[EMAIL PROTECTED]> Sent: Thursday, September 16, 2004 8:23 PM Subject: RE: DispatchAction (was: [Apache Struts Wiki] Updated: StrutsCatalogSimpleDispatchAction)
----I was actually thinking of playing around with this idea, so that the way the method is determined is refactored out, similar to how you (Niall) changed ValidatorActionForm.
Specifically, I'm interested in figuring out if we can refactor it in such a way that it becomes useful to other Action hierarchies. One of the issues with using an app-specific base class is that they lose the functionality provided by the Action subclasses that comes with Struts. If we can move this code outside of the *DispatchAction classes, app-specific base classes can take advantage of these features as well.
Hubert
On Thu, 16 Sep 2004 18:05:46 -0000, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
--------------------------------------------------------------------------Date: 2004-09-16T11:05:45 Editor: NiallPemberton <[EMAIL PROTECTED]> Wiki: Apache Struts Wiki Page: StrutsCatalogSimpleDispatchAction URL: http://wiki.apache.org/struts/StrutsCatalogSimpleDispatchAction
no comment
Change Log:
already in the DispatchAction class. If we re-factored DispatchAction so@@ -179,5 +179,47 @@
'''Michael !McGrady'''
+----
+Seems to me that most of the SimpleDispatchAction duplicates whats
that the parameter retrieval was moved into a new getParameter() method then
all that would be needed to achieve what you want is a flavour that
overrides the getParameter()/getMethodName() methods.
buttonValue.substring(0,buttonValue.indexOf(".x"));+
+Something along the lines of ...
+
+{{{
+public abstract class SimpleDispatchAction extends DispatchAction {
+
+ protected String getParameter(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+ return mapping.getParameter();
+
+ }
+
+ protected String getMethodName(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response,
+ String parameter) {
+
+ if((parameter != null) && (parameter.endsWith(".x"))) {
+ methodName = parameter.substring(0,parameter.indexOf('.'));
+ } else {
+ Enumeration enum = request.getParameterNames();
+ while(enum.hasMoreElements()) {
+ buttonValue = (String)enum.nextElement();
+ if(buttonValue.endsWith(".x")) {
+ methodName =
+ } + } + } + return methodName; + } + +} + +}}} + +'''Niall Pemberton'''
--------------------------------------------------------------------- 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]
--------------------------------------------------------------------- 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]