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に保持していた値との凸合わせに使用した例です。