Grails の CommandObject で Session を使う

RESTな時代に、使う機会はほとんどない気もしますが、メモを残します。

 (Grails 2.3.5 で動作確認)

import org.springframework.web.context.request.RequestAttributes
import org.springframework.web.context.request.RequestContextHolder as RCH

 

class SomeCommand {
    String value
    static constraints = {
        value(validator: {
                    if (it != RCH.getRequestAttributes().getAttribute(MY_KEY, RequestAttributes.SCOPE_SESSION))
                        return ['invalid.value']
        })
    }
}

上記は画面入力した値と、Sessionに保持していた値との凸合わせに使用した例です。