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.codejava.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 w3schools */ 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.
Download this example.
Next Topic: Struts 2 custom interceptor with example.
Previous Topic: Interceptors in struts 2 with example.