MyRequest各 HTTP 要求を処理するために使用されるGroovy クラス があります。コンストラクターで、このクラスはインスタンス変数を(は現在の HttpServletRequest )_sessionの値に設定します。request.getSession(true)request
私の Groovyスクリプトで最初に行うことは、 のインスタンスを作成することですMyRequest。次に、Groovletsessionオブジェクトの特定のプロパティを確認します。スクリプトへの最初のリクエストでは、このsessionオブジェクトが null であるため、null オブジェクト参照エラーが発生します。スクリプトへの 2 番目の要求では、sessionオブジェクトが定義され、エラーは発生しません。
Groovlet のドキュメントによると、この状況は予想されるはずです。これは、Groovlet のsessionオブジェクトがスクリプト内に存在することを確認した後、明示的に設定しなかったためです。
スクリプト (およびプロジェクト内の将来のスクリプト) にさらにコピー アンド ペースト コードを追加する必要はありません。これが、オブジェクトを作成した理由の 1 つです。オブジェクトをインスタンス化するスクリプトMyRequestのオブジェクトを定義するためです。では、クラス内で Groovy スクリプトsessionのオブジェクトを定義するにはどうすればよいでしょうか? オブジェクトを何らかの方法で使用できますか?sessionMyRequestmetaClass