Exemple Struts DispatchAction
La classe DispatchAction (org.apache.struts.actions.DispatchAction) fournit un moyen de regrouper toutes les fonctions associées dans une seule classe d'action. C'est un mécanisme utile pour éviter de créer une classe d'actions distincte pour chaque fonction.
Téléchargez cet exemple Struts DispatchAction -Struts-DispatchAction-Example.zip
Pour implémenter ce mécanisme, votre classe d'action doit étendre la classeorg.apache.struts.actions.DispatchAction, cette classe d'action n'a pas besoin d'implémenter la méthodeexecute() comme le fait la classe d'action normale. Au lieu de cela, la classe DispatchAction exécutera la méthode basée sur le paramètre de demande entrante -method. Par exemple, si le paramètre est «méthode = chinois», alors la méthode chinese () sera exécutée.
Exemple
Une classe d'actions étend la DispatchAction et contient quatre méthodes pour définir les paramètres régionaux dans l'attribut de session Struts pour la localisation.
public class LanguageSelectAction extends DispatchAction{ public ActionForward chinese(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.getSession().setAttribute( Globals.LOCALE_KEY, Locale.SIMPLIFIED_CHINESE); return mapping.findForward("success"); } public ActionForward english(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.getSession().setAttribute( Globals.LOCALE_KEY, Locale.ENGLISH); return mapping.findForward("success"); } public ActionForward german(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.getSession().setAttribute( Globals.LOCALE_KEY, Locale.GERMAN); return mapping.findForward("success"); } public ActionForward france(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.getSession().setAttribute( Globals.LOCALE_KEY, Locale.FRANCE); return mapping.findForward("success"); } }
Cette balise html Struts exécutera la méthode chinese ().
Cette balise html Struts exécutera la méthode english ().
Cette balise html Struts exécutera la méthode german ().
Cette balise html Struts exécutera la méthode france ().