kagamihogeの日記

kagamihogeの日記です。

Struts の すごい つかいかた

アリなのかナシなのか謎だけど、まぁビビッたので軽くメモ的に。

struts-config-less

とりあえず、とある Action 内のコード。


ActionForward forward = new ActionForward( "/Hoge/Foo.do" );
forward.setName("SUCCESS");

struts-config.xml の意味が無いってレベルじゃねーぞ。まぁ、やっちゃいけないってわけじゃないんだろうけど・・・。

ところで、API リファレンス見ると ActionForward#freeze()*1 ってものがある。これを一度呼び出すと以降は setName や setPath を呼ぶと例外が発生して各種設定が出来なくなる。struts が設定ファイルを基に生成した ActionForward は freeze されてるのでパスとフォワード先をいじくれない。ちゃんと保護してんだなぁ・・・と感心?してしまった。

流れるようなアクション

最近話題なアレ的な意味でなくて。

struts-config.xml から抜粋。




....



....



....

Action のフォワード先が Action でそのフォワード先もまた Action で・・・。

コレ、ある Action の動作がその前に呼ばれる Action に 100% 依存しちゃってるんで、ものっそい動作予測がむつかしい。実装継承のほうが依存関係がコードに一応は現れる分まだマシやも・・・。コレに更に Session Hazard が絡んでくると・・・ヴァーン!

*1:org.apache.struts.config.ForwardConfig から継承したメソッド、が正確