Struts - пример DispatchAction
Класс Struts DispatchAction используется для группировки похожих функций в одно действие, и выполнение функции зависит от заданного значения параметра. Вот пример, чтобы показать использование DispatchAction.
Загрузите этот пример -Struts-DispatchAction-Example.zip
1. Класс DispatchAction
Создайте собственный класс DispatchAction, расширяя класс DispatchAction и объявляя два метода -generateXML() иgenerateExcel().
MyCustomDispatchAction.java
package com.example.common.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; public class MyCustomDispatchAction extends DispatchAction{ public ActionForward generateXML(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.setAttribute("method", "generateXML is called"); return mapping.findForward("success"); } public ActionForward generateExcel(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { request.setAttribute("method", "generateExcel is called"); return mapping.findForward("success"); } }
2. Конфигурация Struts
Объявляет отображение действия «CustomDispatchAction» с атрибутом параметра и «действием» в качестве значения. Значение параметра «действие» используется для управления тем, какой метод вызывать - generateXML () или generateExcel ().
struts-config.xml
3. Просмотр страницы
На странице JSP параметр работает следующим образом:
1. /CustomDispatchAction.do?action=generateXML выполнит методgenerateXML().
2. /CustomDispatchAction.do?action=generateExcel выполнит методgenerateExcel().
TestForm.jsp
Struts - DispatchAction Example html:link | a href Generate XML File | Generate Excel File
DispatchExample.jsp
Struts - DispatchAction Example
4. Попробуй это
Если щелкнуть ссылку «Generate XML File», она будет перенаправлена наhttp://localhost:8080/StrutsExample/CustomDispatchAction.do?action=generateXML
Если щелкнуть ссылку «Generate Excel File», она будет перенаправлена наhttp://localhost:8080/StrutsExample/CustomDispatchAction.do?action=generateExcel