Struts2.2.1 provides the feature to chain many actions into a defined sequence or work flow. This feature can be used in an application by applying Chain Result to a action. A Chain Result is an result type which intercepts an interceptor with its own result and stack. This allows to forward a request to an another action. While propagating the state.
An Example of Chain Result is given below.
struts.xmlADS_TO_REPLACE_1
<?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="public" extends="struts-default"> <!-- Chain creatAccount to login, using the default parameter --> <action name="showLogin"> <result>/jsp/login.jsp</result> </action> <action name="doLogin" class="net.roseindia.Login"> <!-- Chain to another namespace --> <result type="chain"> <param name="actionName">home</param> <param name="namespace">/secure</param> </result> </action> </package> <package name="secure" extends="struts-default" namespace="/secure"> <action name="home"> <result>/jsp/home.jsp</result> </action> </package> </struts>
Login.java
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(!getUsername().equals("Admin") || !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; } }
login.jsp
<%@ 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.jspADS_TO_REPLACE_2
<%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> Home Page </TITLE> </HEAD> <BODY bgcolor="lightgreen"> <center><font face="Arier" size="16">This is Home page</font> <font face="arier" size="14"><br>Welcome : <s:property value="username"/></font> </center> </BODY> </HTML>When you run this application it will display message as shown below:
Advertisements
Ads
Ads