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