gpt4 book ai didi

java - 如何制作一个在每个 AJAX 请求页面时重新呈现的 wicket 组件?

转载 作者:行者123 更新时间:2023-12-01 06:41:30 24 4
gpt4 key购买 nike

有没有办法让 Wicket 组件在对页面的每个 AJAX 请求上重新呈现自身? (本质上是执行 ajaxRendered="true" 在 RichFaces 中执行的操作。)

我的应用程序基本上包含以下内容:

  • 可编辑的数据网格记录用户正在执行的更改
  • 这些更改存储在 session 中
  • 有一些按钮可以保存更改或撤消更改。

保存和撤消按钮应启用或禁用,具体取决于是否有任何记录的更改。由于输入更改的方法有多种(编辑、导入 CSV 等),因此我希望避免拦截可能更改已保存状态的每个操作。

此外,这些按钮仅显示在某些页面上,因此我不想在自定义 WebRequestCycle 的页面中嗅探它们。

当即将处理 AJAX 请求时,Wicket 是否会调用一个钩子(Hook),该钩子(Hook)会为页面上的每个组件调用?我知道有 Component#onBeforeRender()Component#onConfigure(),但它们的文档没有说明何时为 AJAX 请求调用它们。

最佳答案

在 Wicket 1.5 中,有一个事件总线。对于每个 Ajax 请求,都会向每个组件发送一个事件,并且该组件可以使用 AjaxRequestTarget 添加自身以进行重新渲染。

例如:

class MyComponent ... {

public void onEvent(Object payload) {

if (payload instanceod AjaxRequestTarget) {
((AjaxRequestTarget) payload).add(this);
}
}

关于java - 如何制作一个在每个 AJAX 请求页面时重新呈现的 wicket 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5598109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com