SAStruts、バリデータ適用前に処理をしたい
まずおもいつくのはActionのメソッドにIntercepterを適用することですが、ActionWrapper#executeがアクション起動前にバリデータ呼ぶので無理ですね。
というわけでS2RequestProcessor#processActionCreateをすげかえて拡張したActionWrapperをつくるようにして、そのクラスをstruts-config.xmlのprocessorClassに指定してやるといいようです。
ActionWrapper#executeの拡張ポイントは以下。
@Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { S2ExecuteConfig executeConfig = S2ExecuteConfigUtil.getExecuteConfig(); if (executeConfig != null) { // このへんに処理追加。executeConfigからActionのメソッドとか取れる。 return execute(request, executeConfig); } return null; }