Struts2 で導入されたことを理解ValueStack
しており、Struts1 モデルからのもう 1 つの変更は、ActionObject
リクエストごとにインスタンス化される新しいものです。そのため、マルチスレッドの問題を気にせずにインスタンス変数を定義できます。インターセプタと JSP が からインスタンス変数にアクセスする方法は、ActionObjects
を介して行われValueStack
ます。しかし、ValueStack
実装される (または少なくとも Struts2 フレームワークで使用される) 方法は、ValueStack
. オブジェクトツリー全体をトラバースする必要がないように、アクセスを簡単にします。以下の質問があります。
埋め込みオブジェクト (オブジェクトの複数階層) がある場合はどうなりますか? このような場合、アクセスメカニズムはどのように動作しますか?
2 つのクライアントが同時に同じアクチンにリクエストを行い、2 つのクライアントから提供された入力が 2 つの異なる結果で返されたため、アクションの実行結果が異なるとします。アクション クラスに最良の価格を取得するメソッドがあり、バックエンド サービスのロジックに基づいて、2 つの異なる要求に対して結果が 10 と 12 になるとします。
ActionClass
この値が格納される price というメンバー変数があり、結果の JSPshowResults.jsp
は (タグ lib を使用して) この変数にアクセスして価格を表示します。私が理解していることからValueStack
先入れ先出し (スタック ロジック) 方式で入ります。したがって、同じ変数が値スタックに (同じ名前で) 2 回格納されているが値が異なるため、両方のクライアント要求に 10 が返される可能性があります。が
ValueStack
リストからオブジェクトを破棄するのはいつですか?