1

何かを見逃したかどうかはわかりませんが、次の問題があります。私はウィケット6.5.0を使用しています.1つのフィールドを持つ単純なフォームがあります。フォームを送信すると、別のページにリダイレクトされます。ブラウザ (firefox 14) の戻るボタンを押すと、フォームに戻りますが、空です。提出した状態で見たいです。

また、フォームの最初のページにいる場合、バージョンが /?0 であることにも気付きました。送信するとバージョンが /second?2 のページに移動し、戻るボタンでバージョンが /?0 のページに戻ります。なぜこうなった?バージョン 1 をスキップする理由

ここに私のコードがあります: WicketApplication.java

public class WicketApplication extends WebApplication
{       

    @Override
    public Class<? extends WebPage> getHomePage()
    {
        return HomePage.class;
    }

    @Override
    public void init()
    {
        super.init();
        mountPage("second", SecondPage.class);
    }
}

ホームページ.java:

public class HomePage extends WebPage {
    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters) {
        super(parameters);
        add(new SimpleForm("form"));

    }

     public final class SimpleForm extends Form<Void>
        {
        private static final long serialVersionUID = -562538189475312724L;


            private final ValueMap properties = new ValueMap();

            public SimpleForm(final String id)
            {
                super(id);
                add(new TextField<String>("field", new PropertyModel<String>(properties, "field")));
            }

            @Override
            public final void onSubmit()
            {
                    setResponsePage(new SecondPage(getPageParameters()));
            }
        }
}

ホームページ.html

...
    <form wicket:id="form">
        <input type="text" wicket:id="field" value="" size="50" /> <input
            type="submit" value="submit" />
    </form>
...

返信ありがとうございます。

4

1 に答える 1

0

提出すると、モデルが変更されたため、ページが汚れており、wicket はページのバージョンを上げてページ マネージャに追加します。したがって、?1 をプラグインすることで取得できるバージョン 1 が作成されます。試してみると、html ウィケットの期待値が返送されていることがわかるはずです。

ページで isVersioned をオーバーライドして false を返すことで、これを回避できます。

コンポーネントから - isVersioned():

ページがバージョン管理されていない場合、そのコンポーネントの変更を追跡せず、存続期間中同じ Page#getPageId() を使用します

つまり、既存のページ ID に対してダーティ ページをシリアル化します。

于 2013-02-07T00:28:16.447 に答える