struts2--显示等待页面

有时候对某个请求的处理可能会耗费较长的时间,在这种情况下,向用户显示一个等待页面更为友好一些。通过拦截器ExecuteAndWaitInterceptor来实现。

WaitAction:

package com.action;

import com.opensymphony.xwork2.ActionSupport;

public class WaitAction extends ActionSupport{
  private int process;

  public String execute() throws Exception {
	for(int i = 0; i < 10; i++){
		Thread.sleep(1000L);
		process += 10;
	}
	return SUCCESS;
}
  
public int getProcess() {
	return process;
}

public void setProcess(int process) {
	this.process = process;
}
  
}

struts.xml中的部分配置:

execAndWait拦截器会终止声明在它之后的拦截器的执行,因此这个拦截器的引用要出现在defaultStack拦截器之后

    <action name="wait" class = "com.action.WaitAction">
       <interceptor-ref name="defaultStack"/>
       <interceptor-ref name="execAndWait"/>
       <result>/success.jsp</result>
       <result name = "wait">/wait.jsp</result>
    </action>

wait.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'wait.jsp' starting page</title>
    <meta http-equiv="refresh" content="2">

  </head>
  
  <body>
您好,任务还为完成!已经完成任务<s:property value = "process"/>%
  </body>
</html>

<meta http-equiv = "refresh" content = "2">表示当前页面显示2秒后访问所指向的成功页面


效果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值