我正在使用1.4.22。我有一个错误,它表示我的页面中缺少了一个反馈面板。然而,我添加了它--那么为什么反馈没有显示出来呢?
组件目标反馈消息未呈现。这可能是因为页面上缺少一个FeedbackPanel。消息: FeedbackMessage message =“订阅2971的问题检索事务”,记者= 4,level = ERROR
下面是页面构造函数的摘录:
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构造函数中放置相同的行,则不会--即使同时调用了两个构造函数。
发布于 2013-10-16 09:30:11
我发现了问题。在AbstractCCPage的末尾,我有以下条目:
add(new PageView("componentTree", this));这是为了在调试级别添加对页面结构的分解,这样我们就可以在页面上看到树。
移除这个问题解决了问题。
发布于 2013-10-15 16:21:27
此问题可能是由重定向到您的页面造成的:
Wicket重定向到您的页面实例,而不实际呈现页面,但反馈消息已经添加。
尝试将对#error()的调用移到#onBeforeRender()。
https://stackoverflow.com/questions/19380903
复制相似问题