日期:2014-05-18  浏览次数:20690 次

类似正在读取数据这样的功能该如何做
public   ActionForward   execute(ActionMapping   mapping,   ActionForm   arg1,   HttpServletRequest   request,   HttpServletResponse   response)   throws   Exception   {
                                //跳转到等待页面
response.sendRedirect( "/Test/a.jsp ");
/**
                                      查询数据库数据
                                **/
                              //回到业务页面
return   mapping.findForward( "current ");
}
我知道这样写是不可能成功呵呵,可是该怎么做呢,就是在EXECUTE方法中,我要先指向一个等待页面然后查询数据再回到业务页面,就是这样的

------解决方案--------------------
使用 Ajax 不是就可以完成了吗?
------解决方案--------------------
你的意思是要在ACTION处理的过程中,用户查看的页面给出提示:正在获取数据吧.

也不是特难,不要在ACTION里做手脚.

在JSP里嵌入一张页面/层,在ACTION提交的时候显示出来,等ACTION返回的时候再隐藏.

例子:
JSP页面代码:
<div id= "ProgressBar " style= "display:none; position: absolute; left: 40%; top: 50%;z-Index:1 " >
<iframe frameBorder=0 src= "pages/Progress.jsp " width=200 height=80 scrolling= "no ">

<script language= "javascript ">
function searchUserBrasInfo()
{
document.all( "ProgressBar ").style.display= " ";
var url= "XXXXXXXXX "
if(!validateSearchUserBrasInfoForm(document.forms(0)))
{
return;
}
window.document.forms[0].action=url;
window.document.forms[0].target= "_self ";
window.document.forms[0].submit();
disableForm(document.forms(0));
}
这样就可以了.你理解一下.

等ACTION返回的时候,因为相当于页面刷新了一次,所以disableForm(document.forms(0));
这句话就失效了.
------解决方案--------------------
可以用4楼的这种做法,不过可能需要一点点小的改动,在显示这个隐藏层时,要把这个层放到页面的最外层,这样,用户可以等待而不会再去点击其它操作按键。
------解决方案--------------------
ajax