我正在使用 apache wicket 1.4.22。我收到一个错误,表明我的页面缺少反馈面板。但是,我已经添加了 - 那么为什么反馈没有显示?
Component-targetted feedback message was left unrendered. This could be because you are missing a FeedbackPanel on the page. Message: [FeedbackMessage message = "Problem retrieving transactions for subscription 2971", reporter = 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());
这是 super 类:
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()。
关于java - Wicket 口: "Component-targetted feedback message was left unrendered",即使 FeedbackPanel 位于页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19380903/