首页 > 其他 > 详细

struts2开发11--提交后自动显示等待界面

时间:2016-04-30 02:22:34      阅读:490      评论:0      收藏:0      [点我收藏+]

有时候当我们从前台提交大量的数据到服务器时,由于服务器处理的时间较长,这个时候我们在浏览器中看到的是一片空白,不知道后台程序是否成功执行了,这个时候就设置一个友好的信息交互界面(比如在界面上提示系统正在处理等信息)来提示用户。

(1) 在struts2中,实现该功能的是使用execAndWait拦截器,它的具体实现过程如下:

1、当表单提交请求到来时,execAndWait拦截器将创建一个新的线程来执行Action,然后返回一个等待页面给用户,让用户知道请求正在处理中。

2、等待页面将包含自动刷新功能,等待界面每隔几秒就通知浏览器,向初始请求的URL再次发送请求。

3、execAndWait拦截器将再次拦截请求,判断Action是否执行完成,如果仍未执行完成,则继续返回等待界面给用户,如果已经执行完成,则向用户返回相应的执行成功界面。

(2) execAndWait拦截器的参数

1、threaPriority??? 可选参数,用来指定线程的优先级,默认值为Thread.NORM_PRIORITY。

2、delay??? 可选参数,指定显示,等待页面前,初始等待的延迟时间,以ms为单位。

3、delaySleepInterval 可选参数,只能和dalay参数一起使用,用来指定检查后台进程是否执行完毕的时间间隔,以ms为单位。

(3)execAndWait在struts.xml文件中的配置如下:

<action name="Exception" class="cn.test.action.ExceptionTestAction" method="execute">
??????? <interceptor-ref name="defaultStack"></interceptor-ref>
??????? <interceptor-ref name="execAndWait"></interceptor-ref>
??????????? <result name="success">/WEB-INF/jsp/Esuccess.jsp</result>
???????? ??? <result name="wait">/WEB-INF/jsp/wait.jsp</result>
??????? </action>

提示等待wait.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s"? uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<body>
正在处理中.....
</body>
</html>

运行程序,5秒后将执行页面刷新操作,如果发现Action已经完成操作,则返回success指向的视图Esuccess.jsp,如果发现Action没有完成相应的操作,则会再次请求wait.jsp页面。

如果设置delay参数

?<interceptor-ref name="execAndWait">

<param name="delay">1000</param >

</interceptor-ref>

表示在提交表单后,1000ms内不论Action是否处理完成,都不会显示等待页面。在1000ms之后,如果Action能够处理完请求,则根据Action的返回结果显示相应的视图,否则,继续显示等待wait.jsp界面。

?

?

?

struts2开发11--提交后自动显示等待界面

原文:http://673390302.iteye.com/blog/2294144

(1)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!