1

私はかなり経験豊富な Wicket ユーザーですが、1.5 に初めて進出したところ、mountPage() 構文に打ち負かされています。

この同じ問題を抱えている誰かの単一の参照を修正できないため、私は明らかに何か間違ったことをしています. だからここに行く:

これは私が init() メソッドに持っているものです:

@Override
public void init()
{
    super.init();

    System.out.println("mounting: /requirement/${id}");

    mountPage("/requirement/${id}", RequirementPage.class);
}

「要件」の部分を他のものに変更して元に戻すことで、これが機能していることを確認しました。これは、RequirementPage の (唯一の) コンストラクターです。

public RequirementPage()
{
    try
    {
        PageParameters params = getPageParameters();

        System.out.println("named keys: " + params.getNamedKeys());
        System.out.println("index keys: " + params.getIndexedCount());

        StringValue value = params.get("id");

        System.out.println("requirement: " + value);

私のサーバー コンソール (Jetty8) では、起動時に次のように表示されます。

mounting: /requirement/${id}

/requirement/0 にリクエストを送信すると、次のように表示されます。

named keys: []
index keys: 0
requirement: null

私は多くのことを見てきましたが、wikiや他の例が示していることと私がやっていることについて何も違うことはわかりません.

どんな助けでも大歓迎です。

ありがとう、

-ジェームズ

4

2 に答える 2

1

Wicket に PageParameters を含むコンストラクターを提供する必要があります。そうしないと、Wicket がそれらのパラメーターをラップしてページに提供する可能性はありません。

それとは別に、pageparameters をgetRequestCycle().getRequest().getRequestParameters()持つコンストラクターを使用せずに requestparameters にアクセスできますが、ページとパラメーターを管理およびマウントし、それらをブックマーク可能にするために wicket を使用する限り、pageparameters の有無にかかわらず、デフォルトのコンストラクターを提供する必要があります。パラメータを受け取るかどうかの要件に応じて。

于 2012-06-01T10:34:31.050 に答える
0

これを試すことができます。

@Override
public void init()
{
    super.init();

    mountPage("requirement", RequirementPage.class);
}

次に、「http://localhost:8080/requrement?id=111」のような URL を呼び出します。コンストラクターで ID を取得できます。しかし、次のように Web ページ コンストラクターを使用できます。

public RequirementPage(PageParameters parameters)
{
 ...
}
于 2012-06-04T10:56:51.380 に答える