The Dispatcher Result forwarded the action to the different action. The Dispatcher does not looses the request data. It forwarded the same to the dispatch the request data to the desired action. To use dispatcher in result you need to do the following mapping.
<action name="dispatcherAction" class="....."> <result name="success" type="dispatcher"> <param name="location">/jsp/home.jsp</param> </result>
An Example of Dispatcher Result is given below
login.jspADS_TO_REPLACE_1
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Chain Result Example</title> <link href="<s:url value="/css/main.css"/>" rel="stylesheet" type="text/css"/> </head> <body> <s:form action="doLogin" method="POST"> <tr> <td colspan="2"> Login </td> </tr> <tr> <td colspan="2"> <s:actionerror /> <s:fielderror /> </td> </tr> <s:textfield name="username" label="Login name"/> <s:password name="password" label="Password"/> <s:submit value="Login" align="center"/> </s:form> </body> </html>
home.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body > <center> <h1> Home Page</h1> <font color=green size=15 face=modern> Welcome :<s:property value="username"/> </font><br> </center> </body> </html>
error.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body > <center> <h1> Error Page</h1> </center> </body> </html>
Login.javaADS_TO_REPLACE_2
package net.roseindia; import com.opensymphony.xwork2.ActionSupport; public class Login extends ActionSupport { public String execute() throws Exception { System.out.println("Login Action Called"); if(getUsername().equalsIgnoreCase("")|| getPassword().equalsIgnoreCase("")){ return ERROR; } else if(!getPassword().equals("Admin")){ return ERROR; }else{ return SUCCESS; } } private String username = null; public String getUsername() { return username; } public void setUsername(String value) { username = value; } private String password = null; public String getPassword() { return password; } public void setPassword(String value) { password = value; } }
struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="false" /> <package name="roseindia" extends="struts-default"> <action name="login"> <result>/jsp/login.jsp</result> </action> <!-- Redirect to another namespace --> <action name="doLogin" class="net.roseindia.Login"> <result name="success" type="dispatcher"> <param name="location">/jsp/home.jsp</param> </result> <result name="error" type="dispatcher"> <param name="location">/jsp/error.jsp</param> </result> </action> </package> </struts>
Advertisements
Ads
Ads