繁体   English   中英

小票:即使“反馈面板”在页面上,“针对组件的反馈消息也未呈现”

[英]Wicket: “Component-targetted feedback message was left unrendered” even though the FeedbackPanel is on the page

我正在使用Apache wicket 1.4.22。 我遇到一个错误,表明我的页面缺少反馈面板。 但是,我添加了它-为什么反馈没有显示?

以组件为目标的反馈消息未呈现。 这可能是因为您在页面上缺少一个FeedbackPanel。 消息:[FeedbackMessage消息=“订阅2971检索事务的问题”,报告程序= 4,级别=错误]

这是页面构造函数的摘录:

public class SubDetailPage extends AbstractCCPage {

public SubDetailPage(final CCSubscription sub) {

    if(sub.getTransactions()==null || sub.getTransactions().isEmpty())  
        error("Problem retrieving transactions for subscription "+sub.getSubscriptionId());

这是超类:

public abstract class AbstractCCPage extends WebPage {

protected final FeedbackPanel feedbackPanel;

public AbstractCCPage() {

    feedbackPanel = new FeedbackPanel("info-panel");
    feedbackPanel.setOutputMarkupId(true);
    add(feedbackPanel);

我以前使用过反馈面板。 他们工作正常。 我在这里做错了什么? 我只是看不到。

进行一些调试后,表明反馈消息已添加到列表中:

Session.get().getFeedbackMessages();

显示消息在那里。

呈现的页面确实有一个(空的)信息面板:

<div id="info_panel45" class="info-panel"> </div>

- -编辑 - -

一些更多的调试:如果将以下行放入AbstractCCPage构造函数中,它将起作用:

error("hello world");

但是,如果我在SubDetailPage构造函数中放入同一行,则不会-即使同时调用了两个构造函数。

该问题可能是由重定向到您的页面引起的:

Wicket重定向到您的页面实例,而没有实际呈现页面,但是已经添加了反馈消息。

尝试将对#error()的调用移至#onBeforeRender()。

我发现了问题。 就在AbstractCCPage的末尾,我输入了以下内容:

add(new PageView("componentTree", this));

这是为了在调试级别添加页面结构的细分,以便我们可以看到页面上的树。

删除此问题已解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM