1

Struts2 で導入されたことを理解ValueStackしており、Struts1 モデルからのもう 1 つの変更は、ActionObjectリクエストごとにインスタンス化される新しいものです。そのため、マルチスレッドの問題を気にせずにインスタンス変数を定義できます。インターセプタと JSP が からインスタンス変数にアクセスする方法は、ActionObjectsを介して行われValueStackます。しかし、ValueStack実装される (または少なくとも Struts2 フレームワークで使用される) 方法は、ValueStack. オブジェクトツリー全体をトラバースする必要がないように、アクセスを簡単にします。以下の質問があります。

  1. 埋め込みオブジェクト (オブジェクトの複数階層) がある場合はどうなりますか? このような場合、アクセスメカニズムはどのように動作しますか?

  2. 2 つのクライアントが同時に同じアクチンにリクエストを行い、2 つのクライアントから提供された入力が 2 つの異なる結果で返されたため、アクションの実行結果が異なるとします。アクション クラスに最良の価格を取得するメソッドがあり、バックエンド サービスのロジックに基づいて、2 つの異なる要求に対して結果が 10 と 12 になるとします。ActionClassこの値が格納される price というメンバー変数があり、結果の JSPshowResults.jspは (タグ lib を使用して) この変数にアクセスして価格を表示します。私が理解していることからValueStack先入れ先出し (スタック ロジック) 方式で入ります。したがって、同じ変数が値スタックに (同じ名前で) 2 回格納されているが値が異なるため、両方のクライアント要求に 10 が返される可能性があります。

  3. ValueStackリストからオブジェクトを破棄するのはいつですか?

4

1 に答える 1