今日もStrutsで思ったことを書いてみる。
現場の仕組みとして、RequestProcessorの拡張を行っている。まだ実際に拡張してあるクラスを斜めにすら読んでいないので、どんな風にやっているかはわからないが、とりあえずネットで見つけたやり方を、自分のブログに書くことで覚えた気になってみる。org.apache.struts.action.RequestProcessorがリクエストを処理するクラス。このクラスを拡張することによって独自のリクエストの処理を行うことが出来る。今やってる仕事では、セッションのクリアをこのRequestProcessor拡張クラスで行うことに決定した。でとりあえず↓の通り記述することで独自のRequestProcessorを使用できるらしい。struts-config.xmlへの記述. < controller processorClass="jp.co.hogehoge.sample.fw.web.SampleRequestProcessor" />クラスの書き方./**/* 必要に応じてメソッドをオーバーライド/* processメソッドが他のprotectedメソッド達を呼ぶ。/* ActionServletが呼ばれる時にこのクラスは呼ばれる。 */public class SampleRequestProcessor extends RequestProcessor { // ログクラス private static Log log = LogFactory,getLog(SampleRequestProcessor.class); protected ActionForward processActionPerform( HttpServletRequest request, HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping ) throws IOException, ServletException { try { ActionForward forward = action.execute(mapping, form, request, response); return forward; } catch (Exception ex) { // 各自裁量か? log.error("SampleRequestProcessor error",ex); return (processException(request, response, ex, form, mapping)); }}こんな感じに拡張していけばよさそう。試していないからよくわからないけど。次にはvalidateの拡張を調べてみよう。どうみても順番は逆だが・・・