2013-10-15 38 views
0

我正在使用apache wicket 1.4.22。我有一個錯誤,表明我的頁面缺少反饋面板。但是,我添加了它 - 爲什麼反饋沒有顯示?Wicket:即使FeedbackPanel位於頁面上,「組件目標反饋消息仍未釋放」

以組件爲目標的反饋消息未被展開。這可能是因爲您缺少頁面上的FeedbackPanel。消息:[FeedbackMessage消息= 「問題檢索認購2971交易」,記者= 4,水平= 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構造函數,它沒有 - 即使這兩個構造函數被調用。

+0

是否在玩Ajax? – bert

+0

頁面上沒有ajax。 – mdarwin

+0

你在'SubDetailPage'的構造函數中調用'super()'嗎? –

回答

0

我發現了這個問題。就在AbstractCCPage結束,我有以下條目:

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

這是爲了增加擊穿調試級別的頁面結構,所以我們可以看到頁面上的樹。

刪除此問題可解決問題。

0

的問題可能是一個重定向引起到您的網頁:

檢票重定向到您的頁面實例,而無需實際渲染頁面,但是已經添加反饋消息。

嘗試將呼叫移至#error()至#onBeforeRender()。