码迷,mamicode.com
首页 > 其他好文 > 详细

【struts2】struts2的execAndWait拦截器使用

时间:2014-05-14 23:46:33      阅读:377      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   c   

  使用execAndWait拦截器可以在等待较长时间的后台处理中增加等待页面。实现如下图所示的效果:

bubuko.com,布布扣

  1)struts.xml主要部分

bubuko.com,布布扣
<action name="test" class="actions.ActionDemo" method="queryall">
   <interceptor-ref name="defaultStack"/> 
   <interceptor-ref name="execAndWait">   
       <!-- 等待时间,执行时间没有超过此值,将不显示等待画面 (毫秒)--> 
       <param name="delay">1000</param> 
       <!-- 间隔检查时间,检查后台进程有没有执行完毕,如果完成了它就立刻返回,不用等到等待,用户不会看到等待画面 --> 
       <param name="delaySleepInterval">50</param>    
   </interceptor-ref> 
   <result name="wait">/wait.jsp</result> 
   <result name="success">/rs.jsp</result> 
</action>
bubuko.com,布布扣

  2)action主要部分

bubuko.com,布布扣
public String queryall(){
    
        for (int i = 0; i < 500000; i++) {
            System.out.println(i);
        }
        user = "你好";
        this.setListData();
        return Action.SUCCESS;
}
bubuko.com,布布扣

  3)jsp页面取值部分(rs.jsp)

  List list =  (List)request.getAttribute("listall"); 取值OK

  4)等待页面部分(wait.jsp)

bubuko.com,布布扣
<%@ page contentType="text/html; charset=GBK" language="java"
    errorPage=""%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML>
<html>
 <head>
 <meta http-equiv=Content-Type content="text/html;charset=gbk">
  <META HTTP-EQUIV="Refresh" content="2;url=<s:url includeParams="all"/>"/>  
  <title> 正在查询,请稍等...</title>
<style type="text/css">
.query_hint{
    border:5px solid #939393;
    width:250px;
    height:50px;
    line-height:55px;
    padding:0 20px;
    position:absolute;
    left:50%;
    margin-left:-140px;
    top:50%;
    margin-top:-40px;
    font-size:15px;
    color:#333;
    font-weight:bold;
    text-align:center;
    background-color:#f9f9f9;
}
.query_hint img{position:relative;top:10px;left:-8px;}
</style>
 </head>

 <body>
  <div id="query_hint" class="query_hint">
      <img src="http://files.cnblogs.com/ningvsban/waiting.gif" />正在查询,请稍<s:url includeParams="all"/>等...
  </div>
  <!--
  <a href="<s:url includeParams="all" />"> 点这里 </a> 如果没有自动跳转请点击这里.
  -->
 </body>
</html>
bubuko.com,布布扣

  关于<meta http-equiv="refresh" content="0;url= "/>的几点说明:

  1)该句话用于页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中,需要定期刷新的页面,如新闻页面,论坛等,不过一般不会用这个,都用新的技术比如ajax等。

  2)对于wait.jsp中的<meta http-equiv="refresh" content="2;url=<s:url includeParams="all"/> "/>意思为:每隔2秒自动刷新定位到目标页面。

  3)对于<s:url includeParams="all"/>为struts2的标签<s:url>,详细请点击这里

  参考资料:http://blog.csdn.net/yirentianran/article/details/3392314

【struts2】struts2的execAndWait拦截器使用,布布扣,bubuko.com

【struts2】struts2的execAndWait拦截器使用

标签:style   blog   class   code   java   c   

原文地址:http://www.cnblogs.com/ningvsban/p/3728712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!