ジョギング

この前の日曜日も走った。一応、予定通り、先週から +1km して、13km ほど走った。まぁ、走ったことは予定どおりなのだけど、想定外の問題も発生・・・。太股が筋肉ついて太くなった感が・・・。昨日から、ズボンを履いていて、太股のあたりが若干きつい。うーん、困った。今週末は距離を伸ばさずに様子を見た方がいいのかね・・・。

SAStruts for Portlet

sastruts-portlet ですが、現状、rc なリリースを続けていますが、いよいよ、それを取ろうかと。取るにあたって、ちょっと直すことがあったりする。現在のところ、実行メソッドで jsp を返す場合は良いのだけど、実行メソッドに飛ぶようなパスを返すと、うまくいかない。まぁ、ここはポートレットのフレームワークを作る悩ましい問題なのだけど。そんなわけで、ここ数日、これをどう直すべきかを試行錯誤中(結構、ややこしくて・・・)。という感じで、それを直したら、1.0.0 にする予定です。がんばろ。

エラーメッセージの表示順

SAStruts でバリデーションエラーとかの表示順についてはまる。アクションフォームで複数の public フィールドに対してアノテーションをくっつけて、バリデーションエラーを起こすと、public フィールドの順番に表示される(まぁ、これも Java の仕様的には保証されてはない気がするけど、Sun の JVM では順番どおりで出してくれるから良しとする)。

っで、そのアクションフォームに public フィールドに加えて、それらの setter/getter とか記述しちゃうと、順番がおかしくなる・・・。原因は、S2 の BeanDesc で setupPropertyDescs()、setupMethods()、setupFields() の順番に実行していく過程で setupPropertyDescs() で Class#getMethods() の順番で、先に propertyDescCache が作られてしまう・・・(というわけで public フィールドの記述した順じゃなくなる)。そんで、 SAStruts の ActionCustomizer の setupValidator でバリデータが突っ込まれているみたい。というわけで、順番が不自然になる(場合がある、という方が正しいのか)・・・。

はて、どうしたものか・・・。BeanDesc のフィール順で並び替えるとかかな(これも Java の仕様的には保証されないと思うけど、Sun の JVM だと public フィールド順になると思うから、これはこれで良しとしておく)。