session
サービスやドメイン クラスではなく、コントローラー、taglib、および GSP でのみ変数を使用できます。スレッド ローカル ホルダーを介していつでもアクセスできますが、現在のスレッドがリクエスト ハンドラーである場合 (つまり、バックグラウンド スレッドでない場合) にのみセッションがあることに注意してください。
import org.springframework.web.context.request.RequestContextHolder
def currentRequest = RequestContextHolder.requestAttributes
if(currentRequest) { // we have been called from a web request processing thread
// currentRequest is an instance of GrailsWebRequest
currentRequest.session["uName"] = ...
} else {
// not in a request handler thread, so no session available
}
ただし、通常は、HTTP リクエストへのアクセスを必要とするロジックを、常に「現在のリクエスト」があることがわかっているコントローラー (または taglibs) に保持することをお勧めします。