在 onAfterRender 中更改 defaultModel

Change defaultModel inside onAfterRender

我在这个Panel里面有一个Panel和一个Image。 在 onAfterRender 中,我想更改 ImagedefaultModel

@Override
protected void onAfterRender() {
    super.onAfterRender();

    previewImage.setDefaultModel(new Model<String>(newUrl));


}

但是这个没有效果。目的是显示一个 placeholder 并且当 Panel 被渲染时,然后改变它的 src

onAfterRender() 是在呈现当前 Component 之后立即执行的回调,即它已经贡献了发送给浏览器的最终 HTML 的一部分。

不太清楚你想用这个占位符实现什么。 如果您想显示占位符然后延迟加载真实图像,那么您可以使用 wicket-extensions 中的 AjaxLazyLoadPanel。或者您可以使用 JavaScript 在浏览器加载图像后替换占位符 (img.addEventListener('load', ...).

onAfterRender() 通常用于在该组件渲染的 content/body 之后渲染某些内容,但不能用于更改它。