Il est souvent pratique de pouvoir réaliser plusieurs actions sur un même formulaire.
Par exemple, pour la gestion d'un panier virtuel, il est possible d'ajouter, de modifier ou de supprimer un élément.
Pour réaliser simplement ce genre de tâche, on peut utiliser le DispatchAction qui concentre en une seule action, l'ensemble des opérations réalisables sur une seule JSP.
On utilise un simple JavaScript qui modifie la valeur d'un champ caché lors de la soumission.
<html:form name="formulaire">
...
<html:hidden property="hidden" value="default"/>
...
<html:submit onclick="setHidden('add');">ADD ELEMENT</html:submit>
</html:form>
public class CartAction extends DispatchAction
{
public ActionForward add(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException { ... }
public ActionForward remove(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException { ... }
public ActionForward modify(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException { ... }
}