Annotation

TypeがCLASSのコンバーター

TypeがCLASSの場合がデフォルトなので、Typeは省略できる。 Annotation自体はModelDrivenの場合はModelの当該プロパティに書いた。 keyをプロパティ名にする必要があるようだ。 @TypeConversion(key="custom", converter = "tutorial.MyCustomTypeConverter"…

@TypeConversionのパラメータ

TypeConversionのパラメータは次のものが指定できる。 パラメータ 必須 デフォルト 備考 key - プロパティ名/キー名 type - ConversionType.CLASS APPLICATION/CLASS rule - ConversionRule.PROPERTY PROPERTY/COLLECTION/MAP/KEY/KEY_PROPERTY/ELEMENT/CREA…

ActionでのTypeConversion

AnnotationでTypeConverterを利用する場合 @TypeConversion を ModelDriven の getModel または、プロパティのSetメソッドで指定する。TypeConversionには type オプションがあり、 type=ConversionType.APPLICATION と type=ConversionType.CLASS が指定で…

AnnotationベースでのConverter指定

コンバーターをAnnotationベースで指定する場合、Actionのクラスに @Conversion を指定する必要がある。

重複したBean名

Annotationベースの場合に不注意で重複したBean名を付けてしまう可能性が高まるが、その場合にどうなるか確認した。Annotationで重複した名前を使った場合に、初期化時にエラーになる。 applicationContext.xml で重複した名前の場合も、初期化時にエラーに…

annotationWorkflowの位置

@Beforeでオブジェクトの初期化をおこうなおうとするとAnnotationWorkflowInterceptorの位置はActionの直前が最適ではあるが @BeforeResultで戻り値を変更しようとする場合、exception や workflow の後だと、これらの"input"などの返却値いじることは出来な…

annotationWorkflowのAnnotationメソッドはfinalに

次のような親子クラスで、双方とも @Before で annotation とした場合 public class A { @Before public String before() { System.out.println( "before-A" ); } } public class B extends A { @Before public String before() { System.out.println( "befo…

継承されたアクションクラスでの@Before Annotation

継承されたActionクラスで@BeforeなどのAnnotationがどのような振る舞いになるのか試してみたUserActionを継承したUserAction2を作ってUserActionとしてbean登録する package tutorial; import jp.co.hershe.struts2.util.Struts2Action; import org.springf…

annotationWorkflowの使い方

annotationWorkflowを有効にして、annotationを使うと次のタイミングでメソッドが実行できる。 annotation 実行タイミング 使えそうなシーン @Before アクションが実行される直前 投げられたパラメータによって初期化されるオブジェクトの生成とかに @Before…

Struts2のAction専用のスキャン用Annotationを作る

context:component-scanを設定するとSpringがAnnotationをスキャンしてBean生成を行うが、Struts2用のアクションであることが明示された方が後々都合がいいかもしれないので、専用のステレオタイプAnnotationを作っておく。 こうしておけば、例えばStruts2の…

Struts2のアクションもAnnotationでbean生成する

ActionへのDependency Injectionだけを行うつもりだったが、考えるとActionは単純にBean生成だけをapplicationContext.xmlに書くことになる。単純な作業になってしまうので、Action Beanの生成もAnnotationにお願いするようにするSpringのapplicationContext…

Spring2.5の@Reourceアノテーションを使ってみる

Springの applicationContext.xml の最初の部分を2.5用に次のように変更

BeanのProxy作成で問題

Acegiの@Securedアノテーションを処理するために、SpringでStruts2のアクションBeanのProxyを作成し、Acegiの認可チェックInterceptorでチェックをさせようと考えていたが、Proxyを作成するとProxy側では基のクラスのAnnotation情報が欠落してしてまい、Stru…