1

私はApacheウィケット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>

- -編集 - -

いくつかのデバッグ: AbstractCPage コンストラクターに次の行を追加すると、機能します。

error("hello world");

しかし、同じ行を SubDetailPage コンストラクターに入れても、両方のコンストラクターが呼び出されていても、そうではありません。

4

2 に答える 2

0

問題が見つかりました。AbstractCCPage の最後に、次のエントリがありました。

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

これは、デバッグ レベルでページ構造の内訳を追加して、ページ上でツリーを確認できるようにするためでした。

これを削除すると問題が解決しました。

于 2013-10-16T09:30:11.657 に答える