java - PageParameters导致Page的onConfigure被多次调用

标签 java url wicket

我尝试实现 BookmarkablePageLink 使用的项目使用一个 BasePage,然后用不同的面板填充它。 URL(例如 www.example.com/?number=12345 )转到 BasePage,从数据库中检索一些信息并将其传递到新建的面板。 如果我调试代码并检查一次,一切都会正确显示。但是,BasePage 的 onConfigure 方法不断被调用。 到目前为止我还没有弄清楚为什么

protected void onConfigure() {
    ToekenningSearchCriteria criteria = new ToekenningSearchCriteria();
    criteria.getSearchItem().setNumber(pageParameters.get("number").toString());
    Toekenning toekenning = getToekenningService().findWithCriteria(criteria); 
 this.setContentPanel(this.getContentPanelFactory().getContentPanel("SOME_CONTENT_PANEL_TYPE", toekenning));
}

我希望 onConfigure 方法仅被调用一次,但它被无限次调用。

编辑:将代码放在 onBeforeRender 方法中会产生相同的结果。

最佳答案

您需要 onInitialize() 而不是 onConfigure() 。

onInitialize 就像构造函数。不同之处在于,在 Component#onInitialize 中,您可以通过 getParent() 访问父级,并通过 getMarkup() 访问标记。由于我们在这里讨论 Page,因此没有父级。

每个有状态页面的请求都会调用onConfigure()。您可以执行 if (!hasBeenRendered() {...} ) 来确保主体仅执行一次。

关于java - PageParameters导致Page的onConfigure被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57217500/

相关文章:

java - 将 Eclipse 项目转换为 Maven 项目丢失按钮链接

java - 如何更改 Maven 依赖项中的日志级别

django - 使用 anchor 标记 Django 链接 url 中另一个页面中的 div

java - Wicket,如何在单击时延迟加载 DropDown 选择?

checkbox - 单击 Wicket 中不同面板中的复选框时更新文本字段

java - 如何使用 apache poi 更改特定 word 文档的颜色?

java - Gradle Apk 构建。失败(:applyRetrolambda FAILED)

javascript - 如何使用正则表达式获取主域字符串?

URL 描述和缩略图 API

java - 如何在 Wicket 中检索查询参数