S2Clickで遊んでて
S2ClickでPageクラスにAOPかけてみたら、PageのインスタンスフィールドがVelocityテンプレートに反映されなくなった。
PageのインスタンスはSeasar2で管理できるけど、Class自体はClickAppでも管理されてるからか。よく見たらClickAppのpageByClassMapフィールドって、click.xmlをベースに構築されるじゃん。んで、ClickAppちゃんは身持ちが堅くておさわりさせてくんないからカスタマイズもできないのね。
まぁとりあえず上記の部分だけの問題であればClickServletで
protected void processPageFields(Page page, FieldCallback callback) { Field[] fields = clickApp.getPageFieldArray(page.getClass());
こうなってんのをS2ClickServletで
protected void processPageFields(Page page, FieldCallback callback) { Field[] fields = page.getFields();
ってすれば解決しそうだけど、そもそもなんか気持ち悪いにゃー。S2Clickの場合、あんまりPageに対してAOPはかけないほうがいいってことか。
まだすぐに業務で使うわけじゃないけど、いろいろ今のうちにいじっておいて損はない。実戦投入する日はいつになるやら。