JBoss Seam如何使用按钮取消请求

3

我有一个应用程序,它会从包含数百万行记录的大型表中获取列表,这可能需要最多10秒钟才能完成。

是否有办法添加“取消”按钮以取消请求,而不是等待上一个请求完成。当前,如果用户尝试点击“取消”按钮(页面重定向),则会引发“ConcurrentRequestTimeoutException”异常。

我可以增加此超时时间,因为它现在设置为“500毫秒”,但是那样用户就必须等待上一个请求完成。我希望它可以取消先前的请求并立即重定向。

这是可能的吗?

按钮代码:

<s:button id="cancelEdit" value="Cancel" propagation="end"
  view="/reference/ProviderList.xhtml">
</s:button>

我还尝试使用h:commandButton,然后在page.xml文件中结束对话并进行重定向。

1个回答

0

通过在取消按钮上添加actionListener="#{conversation.leave}"属性来离开对话。如果您有一个,则应该使用propagation="none"属性。


抱歉,我忘记添加这些细节了。我已经更新了我的帖子。但是,是的,我尝试过使用按钮传播以及在page.xml中before-redirect结束对话。我不认为使用end而不是none会有影响,对吗? - Mike
结束(propagation=end)会话和离开(propagation=none)会话之间存在很大的区别。仅结束会话会使长时间运行的会话变成正常会话(重用相同的会话ID)。而离开会话则将会话留在后台并启动一个新会话。顺便说一下,我已经在您的用例上测试了propagation=none并且完美地解决了问题。仅仅结束会话并不能解决这个问题。 - dcernahoschi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接