使い方
設定 以下の内容をdiconファイルに追加します。
<component \ class="com.opensymphony.xwork.config.providers.XmlConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> </component> <component \ class="org.seasar.xwork.annotation.AnnotationConfigurationProvider"> <initMethod>@com.opensymphony.xwork.config.ConfigurationManager@addConfigurationProvider(#self)</initMethod> </component>
バージョン0.5からは上記の内容がs2xwork-tiger.diconに書かれているため、以下のような記述でも大丈夫です。
<?xml version="1.0"?> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components23.dtd"> <components> <include path="s2xwork-tiger.dicon" /> </components>
AnnotationConfigurationProviderには以下のプロパティがあります。
現状はクラスパス以下のクラスファイルが検索対象です。Jarファイル内のクラスには対応していません。
プロパティ名 | 内容 | デフォルト値 |
packageName classPackage classPattern resource | アクションを追加するxwork.xml内のパッケージ名(package要素のname属性で設定) アノテーションを探す対象のパッケージ。このパッケージ以下のパッケージを探索します。 アノテーションを探す対象のクラス名パターン(正規表現) クラスを探索するディレクトリのルートにあるファイル名 | default 空文字 .*Action xwork.xml |
アノテーションの使い方
アノテーションをアクションクラス名のクラス定義の上に書きます。
@XWorkAction(name="test") public class TestAction extends ActionSupport{ }
- 例:通常のAction定義(nameは必須) * @XWorkAction(name="test") * 例:複数のAction定義 * @XWorkActions(actions = @XWorkAction(name="test1"),@XWorkAction(name="test2")) * 例:メソッド指定 * @XWorkAction(name="test", method="add") * 例:Resultありの場合(@Resultのnameを省略した場合はsuccess) * @XWorkAction(name="test",result=@Result(type="velocity",param=@Param(name="location",value="index.vm")))