-1

有时在关闭 ModalWindow 时会弹出消息“你想离开还是留下……”。我无法确定原因。例如,我关闭窗口 10 倍(仍然以相同的方式),其中一些尝试以失败告终。可以,但是父页面重新构建,数据全部丢失,不友好。

我的项目规范:

  • 检票口:6.21.0
  • 爪哇:8
  • 春天:4.1.1.RELEASE
  • 和其他(我希望不是相关的依赖项)

到目前为止,我所做、尝试或探索的事情:

  • 当模态窗口关闭并发生错误时,再次构造父页面
  • 发生错误时,不调用关闭回调
  • modalWindow.showUnloadConfirmation(false) - 不起作用。确认窗口不显示,但是当窗口关闭时,父页面被重新加载并且数据消失了
  • 将检票口更新到最新的 6.24 版本或 Spring 4.1.6 无济于事
  • 降级到 wicket 6.1.9 没有帮助
  • 升级到 wicket 7.4 没有帮助
  • 当错误发生时,模态窗口页面例如由 http 8443 exec 5 线程生成,并且回调被同一线程捕获
  • 发生错误时,模态窗口页面例如由 http 8443 exec 5线程生成,但是当失败并且新父页面由 http 8443 exec 9线程创建时
  • 在调用 window.close() 清除和分离所有数据提供者之前添加关闭按钮也无济于事
  • 当模态窗口失败时,javascript 中的 window.close() 方法是最后一件事,即被调用。之后没有代码被调用。之后可能会重定向到父页面(这就是您要离开此页面确认对话框的原因)。
  • 以上所有内容都可以通过创建新的 Java 类来测试,该类扩展 ModalWindow 并覆盖受保护的方法 String getCloseJavacript(),该方法以 String 的形式返回关闭的 JavaScript 代码。

解决方案

问题是当父页面加载数据时,页面大小太大而无法存储到 Wicket 页面缓存内存中。因此,当模态窗口关闭时,应该加载保存的父页面,但它从未保存,因此生成了新的。Wicket 页面缓存的大小,可以在 WicketApplication 类中设置。更多信息请参见页面缓存部分的https://ci.apache.org/projects/wicket/guide/6.x/guide/versioningCaching.html

4

1 回答 1

0

这是可配置的:使用 ModalWindow#showUnloadConfirmation(boolean) 来控制它。

于 2016-09-19T12:13:08.790 回答