浏览 2588 次
锁定老帖子 主题:如何获取ww2中action的实时进度?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-03
具体点说,比如在做一个统计月报的时候,要先统计当月数据,并生成一个Excel,这个处理的操作可以放在action里直接实现,也可以在action里调用spring做个service实现,可以计算出当前进度(比如分段取数据处理时,可以知道当前完成的百分比),但是都不知如何及时把进度数据返回给前台页面,并实现刷新... 现在我只知道用retrun result返回model,但这样意味着action执行完毕,如何在不打断action执行的情况下,把action执行的进度提交给前台呢? 不知道我说的是否清楚,有疑问大家尽管问,非常感谢 ![]() 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-03
action里开一新thread,action只负责启动这个thread, 返回的时候只返回进度信息
|
|
返回顶楼 | |
发表时间:2006-11-03
webwork本身就提供了这样的interceptor:
com.opensymphony.webwork.interceptor.ExecuteAndWaitInterceptor 你只需要定义wait类型的result页面,并且在action里面加上一个能够获取执行进度的方法就可以了。 |
|
返回顶楼 | |
发表时间:2006-11-06
Readonly 写道 webwork本身就提供了这样的interceptor:
com.opensymphony.webwork.interceptor.ExecuteAndWaitInterceptor 你只需要定义wait类型的result页面,并且在action里面加上一个能够获取执行进度的方法就可以了。 多谢提示,但是我在系统里实现的时候有问题, 我在webwork-default.xml里添加了 <interceptor name="execAndWait" class="com.opensymphony.webwork.interceptor.ExecuteAndWaitInterceptor"/> 在xwork.xml里添加了 <action name="testWait" class="com.action.cord.CordAction" method="testWait"> <interceptor-ref name="execAndWait"/> <result name="success" type="freemarker">/cord/ftest.ftl</result> <result name="wait" type="freemarker">/cord/wait.ftl</result> </action> 并且定义了wait页面wait.ftl <HTML> <HEAD> <meta http-equiv="refresh" content="2"> </HEAD> <BODY> Wait.............. </BODY> </HTML> CordAction中 public String testWait() { System.out.println("这是我的测试 "); try { System.out.println("-----start sleep!"); System.out.println(new Date()); Thread.sleep(2000 * 5); System.out.println("-----end sleep!"); System.out.println(new Date()); } catch (InterruptedException e) { e.printStackTrace(); } return SUCCESS; } 但是在运行的时候第一次会出现waiting的提示,刷新后出现success页面,但是这时action应该还没有结束,而且console页面中也没有出现System.out.输出的东西,象是没有运行一样,这是怎么回事呢... 我看了论坛里moxie大大的贴子,在我的系统上也没跑起来... |
|
返回顶楼 | |
发表时间:2006-11-09
这个有问题吧:
<meta http-equiv="refresh" content="2"> 看一下webwork自己的例子,应该是call本身的action和parameter: <meta http-equiv="refresh" content="5;url=<@ww.url includeParams="all"/>"/> |
|
返回顶楼 | |