Struts – DispatchActionの例
Struts DispatchActionクラスは、類似の機能を単一のアクションにグループ化し、指定されたパラメータ値に応じて関数を実行するために使用されます。次に、DispatchActionの使用例を示します。
この例をダウンロードする –
Struts-DispatchAction-Example.zip
1. DispatchActionクラス
DispatchActionクラスを拡張してカスタムのDispatchActionクラスを作成し、
generateXML()
と
generateExcel()
の2つのメソッドを宣言します。
package com.mkyong.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.ストラットの構成
「CustomDispatchAction」というアクションマッピングを宣言し、パラメータ属性と「action」を値として使用します。パラメータ値 “action”は、generateXML()またはgenerateExcel()を呼び出すメソッドを制御するために使用されます。
-
struts-config.xml **
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config__1__3.dtd">
<struts-config>
<action-mappings>
<action
path="/CustomDispatchAction"
type="com.mkyong.common.action.MyCustomDispatchAction"
parameter="action"
>
<forward name="success" path="/pages/DispatchExample.jsp"/>
</action>
<action
path="/Test"
type="org.apache.struts.actions.ForwardAction"
parameter="/pages/TestForm.jsp"
>
</action>
</action-mappings>
</struts-config>
3.ビューページ
JSPページでは、このパラメータは次のように動作します。
{空} 1。
/CustomDispatchAction.do?action = generateXML
はgenerateXML()
メソッドを実行します。
/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.テストする

”
XMLファイルの生成
“リンクをクリックすると、
http://localhost:8080/StrutsExample/CustomDispatchAction.do?action
= generateXML
に転送されます

”
Excelファイルを生成
“リンクをクリックすると、
http://localhost:8080/StrutsExample/CustomDispatchAction.do?action
= generateExcel
に転送されます。
