Struts 2 execAndWait interceptor

execAndWait interceptor:

The execAndWait interceptor is used in case of long running action. It sends the user to an intermediate waiting page while action is executed.
Note: We have to put the meta refresh tag on the top of the waiting page so that waiting page will redirect to the required result page.

Struts 2 execAndWait interceptor example:

test.jsp
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>Struts 2 execAndWait interceptor example</title>
</head>
<body>
<h3>This is an execAndWait interceptor example.</h3>
 
<s:form action="test">
<s:submit value="Hello" align="center"/>
</s:form>
 
</body>
</html>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
 
 
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.
filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
 
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
 
<welcome-file-list>
<welcome-file>test.jsp</welcome-file>
</welcome-file-list>
 
</web-app>
struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
 
<struts>
 
<package name="user" extends="struts-default">
<action name="test"
class="com.javawithease.action.Test">
<interceptor-ref name="logger"/>
<interceptor-ref name="execAndWait"/>
<result name="success">/welcome.jsp</result>
<result name="wait">/wait.jsp</result>
</action>
</package>
 
</struts>
Test.java
/**
* This class is used as an action class.
* @author javawithease
*/

public class Test {
 
//business logic
public String execute(){
//for delaying processing.
for(int count =0; count < 10000; count++){
System.out.println(count);
}
 
return "success";
}
}
welcome.jsp
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>Struts 2 execAndWait interceptor example</title>
</head>
<body>
<h3>This is an execAndWait interceptor example.</h3>
</body>
</html>

Output:


 
Click on Hello button.

 

 

No comments: