1

たとえば、アプリケーションがいくつかのテストを実行しているときに更新する必要がある html スパンがあります (投稿を行い、応答を待って結果を表すなど)。したがって、このスパンでこのアクションの現在の進行状況を表示したいと思います。

WebPage を拡張する myPage.java にスレッドを作成しようとしました。その定義は次のとおりです。

class TestThread extends Thread{

    private Label current_message_lbl;
    private Component component;

    public void run() {
        try {
            this.sleep(1000);
            current_message_lbl.setDefaultModelObject(new StringResourceModel("test-SENDING-COMMANDS",component, null));
                    /* HTTP POST and other test code*/

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

    public void setCurrentMesssageLabel(Label current_message_lbl){
        this.current_message_lbl = current_message_lbl;
    }
    public void setComponent(Component component){
        this.component = component;
    }
}

そして、私はそれを始めます:

TestThread thread = new TestThread();
thread.setCurrentMesssageLabel(current_message_lbl);
thread.setComponent(component);
thread.start();

そして、このエラーメッセージが表示された後

現在のスレッドに接続されているアプリケーションはありません Thread-103

私は次のようなスレッドも定義しようとしました:

class TestThread extends WicketApplication implements Runnable{
4

1 に答える 1

4

コンポーネントにAjaxSelftUpdatingTimeBehaviorを追加できます。このビヘイビアよりも、コンポーネントは毎秒またはそれ以外で更新されます。ただし、スレッドでコンポーネントのモデルを変更する必要があります。

また、コンポーネントを遅延ロードしようとする場合は、AjaxLazyLoadPanelを確認できます。ここここにいくつかの例があります。

于 2012-06-04T10:50:36.360 に答える