Struts Dispatch Action (org.apache.struts.actions.DispatchAction) is one of the Built-in Actions provided along with the struts framework.
The org.apache.struts.actions.DispatchAction class enables a user to collect related functions into a single Action. It eliminates the need of
creating multiple independent actions for each function. Here in this example you will learn more about Struts Dispatch Action that will help you grasping the concept better.
Let's develop Dispatch_Action class which is a sub class of org.apache.struts.actions.DispatchAction class. This class does not provide an implementation for the execute() method because DispatchAction class itself implements this method. This class manages to delegate the request to one of the methods of the derived Action class. An Action Mapping is done to select the particular method (via Struts-Configuration file).
Here the Dispatch_Action class contains multiple methods ie.. add() , edit() , search() , save(). Here all the methods are taking the same input parameters but each method returns a different ActionForward like "add" in case of add() method , "edit" in case of edit() etc.
Each ActionForward is defined in the struts-config.xml file (action mapping is shown later in this page). Here is the code for Action Class.
Developing an Action Class (Dispatch_Action.java)
package roseindia.net;
|
Developing an ActionForm Class
Our form bean class contains only one property "parameter" which is playing prime role in this example. Based on the parameter value appropriate function of Action class is executed. Here is the code for FormBean ( DispatchActionForm.java):
package roseindia.net;
|
Defining form Bean in struts-config.xml file
Add the following entry in the struts-config.xml file for defining the form bean
Developing the Action Mapping in the struts-config.xml
Here, Action mapping helps to select the method from the Action class for specific requests. Note that the value specified with the parameter
attribute is used to delegate request to the required method of the Dispath_Action Class.
type="roseindia.net.Dispatch_Action" parameter="parameter" input="/pages/DispatchAction.jsp" name="DispatchActionForm" scope="request" validate="false"> |
Developing jsp page
Code of the jsp (DispatchAction.jsp) to delegate requests to different jsp pages :
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%> Dispatch Action Example |
Add the following line in the index.jsp to call the form.
Example demonstrates how DispatchAction Class works.
Building and Testing the Example
To build and deploy the application go to Struts\Strutstutorial directory and type ant on the command prompt. This will deploy the application. Open the browser and navigate to the DispatchAction.jsp page. Your browser displays the following DispatchAction page.
Selecting Call Add Section displays the following DispatchActionAdd.jsp page
Selecting Call Edit Section displays the following DispatchActionEdit.jsp page
Selecting Call Search Section displays the following DispatchActionSearch.jsp page
Selecting Call Save Section displays the following DispatchActionSave.jsp page
0 comments:
Post a Comment