Struts2 execAndWait拦截器的使用

Struts2 execAndWait拦截器用户在请求Action返回结果前的处理,主要是给用户友好的提示:

首先新建一个等待页面 wait.jsp ,该页面是用户用于等待的页面。

在Struts.xml里面配置拦截器:

<action name="login" class="com.struts2.LoginAction" method="login"> <result name="success">/method.jsp</result> <result name="error">/loginError.jsp</result> <!-- 配置等待页面,返回值必须是wait --> <result name="wait">/wait.jsp</result> <interceptor-ref name="defaultStack"></interceptor-ref> <!-- 引入拦截器,execAndWait拦截器必须在所有拦截器的最下面 --> <interceptor-ref name="execAndWait"> <!-- 等待时间,执行时间没有超过此值,将不显示等待画面 (毫秒)--> <param name="delay">2000</param> <!-- 间隔检查时间,检查后台进程有没有执行完毕,如果完成了它就立刻返回,不用等到等待,用户不会看到等待画面 --> <param name="delaySleepInterval">50</param> </interceptor-ref> </action>

在action里面让该方法延迟执行:

package com.struts2; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ private static final long serialVersionUID = 1L; private User user ; public User getUser() { return user; } /* * map方式获取request和session */ public void setUser(User user) { this.user = user; } public String login() throws Exception{ Thread.sleep(3000) ; System.out.println("这是登陆"); return SUCCESS ; } }

运行该工程,结果如下:

My JSP 'wait.jsp' starting page<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->

正在提交请求,请耐心等待.......

假如action里面没有设置延迟,那么action将直接跳转,不会显示wait.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值