Пример Struts DispatchAction

Пример Struts DispatchAction

Класс DispatchAction (org.apache.struts.actions.DispatchAction) предоставляет способ сгруппировать все связанные функции в один класс действий. Это полезный механизм, позволяющий избежать создания отдельных действий для каждой функции.

Загрузите этот пример Struts DispatchAction -Struts-DispatchAction-Example.zip

Чтобы реализовать этот механизм, ваш класс действий должен расширять классorg.apache.struts.actions.DispatchAction, этот класс действий не должен реализовывать методexecute(), как это делает обычный класс действий. Вместо этого класс DispatchAction будет выполнять базу метода на основе параметра входящего запроса -method. Например, если параметром является «method = chinese», будет выполняться метод chinese ().

пример

Класс действия расширяет DispatchAction и содержит четыре метода для установки локали в атрибут сеанса Struts для локализации.

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");
    }

}

Этот HTML-тег Struts будет выполнять метод chinese ().


Этот HTML-тег Struts будет выполнять метод english ().


Этот HTML-тег Struts будет выполнять метод german ().


Этот HTML-тег Struts будет выполнять метод france ().