Рубрики
Без рубрики

Пример диспетчерского действия Struts

– Пример диспетчерского действия Struts

Автор оригинала: mkyong.

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

Чтобы реализовать этот механизм, вашему классу действий необходимо расширить org.apache.struts.actions. Класс DispatchAction , этот класс действий не нуждается в реализации метода execute() , как это делает обычный класс действий. Вместо этого класс DispatchAction выполнит метод, основанный на параметре входящего запроса – метод . Например, если параметр равен”, то будет выполнен метод 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().

Chinese

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

English

Этот html-тег Struts выполнит метод german().

German

Этот html-тег Struts выполнит метод france().

France

Оригинал: “https://mkyong.com/struts/struts-dispatchaction-example/”