问题简而言之:如果在托管bean中的JSF页面上按下命令按钮执行的方法花费了超过20秒的时间,那么我对等待方法执行完成并向用户显示消息以稍后重试不感兴趣。在调用button click的方法中,我调用了其他系统提供的API方法,它是一个带有一些输入参数的单行方法。
具体问题:我有一个场景,我有一个JSF 2页面,上面的部分包含一些输入字段,用户在其中输入一些搜索条件,另一个下面的部分包含一个结果表。当用户单击搜索按钮时,表格中填充了来自另一个系统的搜索结果。在单击搜索按钮时,我捕获HashMap<String,String>
中的所有输入字段,并将其作为输入参数传递给一个方法,该方法进一步调用外部应用程序公开的服务。有时这个执行方法调用的语句需要很长时间才能返回结果。我想在这个方法调用超过20秒的情况下向用户显示一些消息,而不让用户等到time方法返回一些结果。我想我必须使用一些并发机制。是否有实现这种需求的模式?
在搜索按钮上添加onclick="busyPopup.show()" oncomplete="busyPopup.hide()"以显示某种对话框或弹出窗口。只需在弹出框/对话框中放置一个旋转图像或小时玻璃。