您的位置:首页 > 移动开发

Struts – MappingDispatchAction Example

2015-08-28 10:26 369 查看
Struts
MappingDispatchAction
class is used to group similar functionality into a single action class, and execute the function depends on parameter attribute of the corresponding
ActionMapping
. Here’s an example to show the use of MappingDispatchAction.

1. MappingDispatchAction class

Extends the
MappingDispatchAction
class, and declares two methods –
generateXML()
and
generateExcel()
.

MyCustomDispatchAction.java

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.MappingDispatchAction;

public class MyCustomDispatchAction extends MappingDispatchAction{

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 configuration

Declares two action mappings, each point to same
MyCustomDispatchAction
class with different parameter attributes.

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="/CustomDispatchActionXML"
type="com.mkyong.common.action.MyCustomDispatchAction"
parameter="generateXML"
>

<forward name="success" path="/pages/DispatchExample.jsp"/>

</action>

<action
path="/CustomDispatchActionExcel"
type="com.mkyong.common.action.MyCustomDispatchAction"
parameter="generateExcel"
>

<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. View page

In JSP page, the links work as following :

/CustomDispatchActionXML
will execute the
generateXML()
method.

/CustomDispatchActionExcel
will execute the
generateExcel()
method.

TestForm.jsp

<%@taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
Struts - DispatchAction Example
html:link
Generate XML File
|
Generate Excel File
a href
Generate XML File
|
Generate Excel File


DispatchExample.jsp

<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

Struts - DispatchAction Example


Test it

http://localhost:8080/StrutsExample/Test.do



If the “Generate XML File” link is clicked, it will forward to http://localhost:8080/StrutsExample/CustomDispatchActionXML.do

Struts-MappingDispatchAction-2-xml-example

If the “Generate Excel File” link is clicked, it will forward to http://localhost:8080/StrutsExample/CustomDispatchActionExcel.do

Struts-MappingDispatchAction-3-excel-example
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: