You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "m.krueger" <mk...@gmx.net> on 2007/10/19 16:55:02 UTC

ForwardDispatchAction

Hi,

This is an implementation of ForwardDispatchAction. It maps like
EventDispatchAction a property to value specified in the parameter's
attribute of an action, thus

<action path="/Forward"
           parameter="edit=EDIT, save=SAVE, default=EDIT">
 <forward name="EDIT" path="/someAction.do"/>
 <forward name="SAVE" path="/someOtherAction.do"/><
</action>

but it does not call a method, but the forward of the action.

<code>
public class ForwardDispatchAction extends Action {
  
  @Override
  public ActionForward execute(ActionMapping mapping,
                               ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) throws
Exception {
    String forward = findForward(request, mapping.getParameter());
    
    if(forward == null) {
      throw new ServletException("No mapping found for " +
mapping.getPath());
    }
    
    return mapping.findForward(forward);
  }
  
  private String findForward(HttpServletRequest request, String parameter) {
    StringTokenizer st = new StringTokenizer(parameter, ",");
    String defaultForward = null;
    
    while(st.hasMoreTokens()) {
      String key = st.nextToken();
      String value = key;
      
      int index = key.indexOf('=');
      if(index > -1) {
        value = key.substring(index + 1).trim();
        key = key.substring(0, index).trim();
      }
      
      if(key.equals("default")) {
        defaultForward = value;
      }
      
      if(request.getParameter(key) != null) {
        return value;
      }
    }
    
    return defaultForward;
  }

}
</code>

Maybe you find this usefull.

Greetings,
   Martin

-- 
View this message in context: http://www.nabble.com/ForwardDispatchAction-tf4653813.html#a13296270
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org