Struts DispatchAction Beispiel
Die DispatchAction-Klasse (org.apache.struts.actions.DispatchAction) bietet eine Möglichkeit, alle zugehörigen Funktionen in einer einzigen Aktionsklasse zu gruppieren. Dies ist ein nützlicher Mechanismus, um zu vermeiden, dass für jede Funktion eine eigene Aktionsklasse erstellt wird.
Laden Sie dieses Struts DispatchAction-Beispiel herunter -Struts-DispatchAction-Example.zip
Um diesen Mechanismus zu implementieren, muss Ihre Aktionsklasse die Klasseorg.apache.struts.actions.DispatchActionerweitern. Diese Aktionsklasse muss die Methodeexecute()nicht wie die normale Aktionsklasse implementieren. Stattdessen führt die DispatchAction-Klasse die Methodenbasis basierend auf dem Parameter für eingehende Anforderungen -method aus. Wenn der Parameter beispielsweise "method = chinese" lautet, wird die chinese () -Methode ausgeführt.
Beispiel
Eine Aktionsklasse erweitert die DispatchAction und enthält vier Methoden zum Festlegen des Gebietsschemas im Struts-Sitzungsattribut für die Lokalisierung.
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"); } }
Dieses Struts-HTML-Tag führt die chinese () -Methode aus.
Dieses Struts-HTML-Tag führt die english () -Methode aus.
Dieses Struts-HTML-Tag führt die german () -Methode aus.
Dieses Struts-HTML-Tag führt die Methode france () aus.