Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

MappingDispatchAction e altre Action già pronte

Le particolarità ed i vantaggi di IncludeAction, BaseAction e MappingDispatchAction
Le particolarità ed i vantaggi di IncludeAction, BaseAction e MappingDispatchAction
Link copiato negli appunti

In questa lezione analizzeremo quelle action pronte all'uso, contenute nel package org.apache.struts.actions, che non abbiamo ancora trattato, ma che vale la pena conoscere.

MappingDispatchAction

La MappingDispatchAction è identica alla DispatchAction, solo che in fase di mapping non si specifica più il parametro, ma direttamente il nome del metodo da invocare. La stessa azione sarà mappata con nomi differenti e sarà chiamata a seconda del metodo da invocare.

Riprendendo l'esempio fatto per la DispatchAction nelle lezioni precedenti, dovremo modificare innanzitutto l'estensione della classe, che sarà org.apache.struts.action.MappingDispatchAction. Nello struts-config scriveremo:

<action path="/saveMappingDispatchUserSubmit"
        type=" fulvios.UserMappingDispatchAction"
        parameter="save">
  <forward name="success" path="/success.jsp" />
</action>
<action path="/removeMappingDispatchUserSubmit"
        type="fulvios.UserMappingDispatchAction"
        parameter="remove">
  <forward name="success" path="/success.jsp" />
</action>

Quindi se vogliamo eseguire il metodo save invocheremo l'azione con il nome /saveMappingDispatchUserSubmit mentre per il metodo remove /removeMappingDispatchUserSubmit.

BaseAction

La BaseAction è molto simile ad una semplice Action di Struts solo che mette a disposizione il seguente metodo execute():

public ActionForward execute(ActionMapping mapping, ActionForm form,
                             HttpServletRequest req, HttpServletResponse res)
                             throws Exception {
  preProcess(mapping,form,request,response);
  if (isErrors(request)) {
    return findFailure(mapping,form,request,response);
  }
  try {
    executeLogic(mapping,form,request,response);
  }
  catch (Exception e) {
    setException(request,e);
    catchException(mapping,form,request,response);
  }
  finally {
    postProcess(mapping,form,request,response);
  }
  if (isErrors(request)) {
    return findFailure(mapping,form,request,response);
  }
  if ((isStruts_1_0()) && (isMessages(request))) {
    saveErrors(request,getMessages(request,false));
  }
}

Questo metodo mette a disposizione una parte dove si può implementare una logica di business da effettuare prima di eseguire il processo vero e proprio che sarà contenuto nel metodo executeLogic(). Nel metodo è già compresa la gestione delle eccezioni generale.

IncludeAction

La classe IncludeAction ha la stessa funzionalità della ForwardAction solo che permette l'integrazione di servlet con l'applicazione Struts. Si configura allo stesso modo della ForwardAction solo che l'attributo parameter deve specificare il path di una servlet, mentre type deve essere org.apache.struts.actions.IncludeAction.

Ti consigliamo anche