0

Spring 3.0 フレームワークを使用しています

スレッドとその結果に関して問題があります。私のプロジェクトには、多くのコントローラーとそのメソッドがあります。

コントローラーのメソッドの 1 つで呼び出されるスレッドを 1 つ作成しました。JSP で結果を表示したいので、その結果をモデル属性に追加する必要があります。

問題は、スレッドの結果をモデル属性ビットに追加していると考え、その結果が JSP で null になることです。use は現在そのコントローラーを使用していないためです。

例:

    Spring Controller{

    //mapping
    String controllerMethod1(Model model){

    }

    //mapping
    String controllerMethod2(Model model){
      //thread will calling on this controller method
       //new myThread
      var result=new myThread.start();

      model.addattr("res",result);
    }

    //mapping
    String controllerMethod3(Model model){

    }

    //mapping
    String controllerMethod4(Model model){

    }

    //mapping
    String controllerMethod5(Model model){
    }

    }

そのようなコントローラーはたくさんありますすべてのコントローラーの各リターン JSP ページで、${res}スレッドの戻り結果を表示する必要があります

適切な解決策を教えてください。ありがとうございます。

Spring 3.2にはDefferedResult の概念があることを知っていますが、Spring 3.0 にはありません。Deferedresult のような代替ソリューションを教えてください

4

2 に答える 2

3

私の理解が正しければ、モデルにThreadオブジェクトを含めるのではなく、スレッドによって計算された結果をモデルに含める必要があります。Futureクラスを見る必要があります。しかし、それでも、それがあなたの助けになるとは思えません。JSP レンダリング コードは、コントローラ メソッドが戻った直後にスレッドの結果を必要とするため、値を計算する時間はあまりありません。なぜスレッドを使用しているのかを再考する必要があります。

于 2013-08-13T12:20:55.043 に答える