- SAStruts
・@ActionFormが無い場合、Actionのpublicフィールドに、リクエストパラメータと同名
のフィールドがあると、上書きしようとする問題がある。
DI用のフィールドは、protectedにして、@Resourceをつけることが推奨になるそうです。
※もともと、今のプロジェクトでは@ActionFormを必須で考えているから大丈夫。
・リクエストインターセプタは、Actionのpublicメソッド全てが対象となる。
※finalメソッドは除きます。
@Executeの付いたメソッドだけ、インターセプトする場合は、Fieldに対して
Executeアノテーションを取得できるかチェックすることで分かる。
※他にいい方法があるのかもしれないですが・・・
・SAStrutsでは、ネストしたプロパティに対するValidationは行われません。
例えば、
a.DTOのフィールドにDTOを持つケース
b.DTOのフィールドにDTOのListを持つケース
これらに対して、@Requiredや@Maxlengthなどのアノテーションによる
Validationを行う場合はSAStrutsを独自に拡張する必要があります。
ちなみに、通常のStrutsでは、a.やb.のケースでも対応できた記憶があります。
※validwhenのXML記述で、property[]のような記述ができます。
拡張(カスタマイズ)で注意しておかなければいけないのが、b.への対応です。
ActionCustomizerにあるsetupValidationメソッドは、対象画面への初期表示時にしか
呼ばれません。(性能を考えているのだと思います)
b.の場合、画面の状況によってListのサイズが変わるため、リクエスト毎に
setupValidation相当のことをする必要があります。(もっと良い方法があるのかもしれません)
また、エラーメッセージも何行目がエラーなのか分かるように実装する必要もありますし、
@Validwhnアノテーション相当を独自で実装する必要もでてきます。- Seasar2のAOP
・finalクラスにはAOPの適用はできない
・finalまたはstaticメソッドにAOPは適用できない
Seasarに限った話ではなく、おそらく他のAOPも同じだと思う。(調べたわけではありません・・・)
DBViewer Plugin for Eclipse とは
DBViewer Plugin for Eclipse(以下DBViewer)は、Eclipse(統合開発環境)を拡張するためプラグインです。
Eclipseに「データベース・フロントエンド」機能を提供します。(JDBCドライバーを使用しています)
DBAの方よりも開発者(Developer)の方をターゲットに機能を提供しています。
※Microsoft AccessやExcelには接続できません
Eclipseに「データベース・フロントエンド」機能を提供します。(JDBCドライバーを使用しています)
DBAの方よりも開発者(Developer)の方をターゲットに機能を提供しています。
※Microsoft AccessやExcelには接続できません
2008年6月25日水曜日
[本日のメモ]SAStrutsとSeasar2のAOPについて
登録:
コメントの投稿 (Atom)
1 件のコメント:
一応、AOP 自体には、static だとか final だとか制限はないと思いますよ。
http://d.hatena.ne.jp/cypher256/20060401/1184986509
コメントを投稿