About

ドキュメント

Javadoc

プロジェクト文書

Built by Maven

S2Fisshplateとは

Fisshplateは、S2Containerには依存しておらず、汎用的に利用する事が出来ます。

S2Fisshplateを使う事によって、S2とFisshplateを連携して、インタフェースを定義するだけでFisshplateの機能を使う事が出来ます。

基本的な使い方

まず、テンプレートに埋め込むDtoを作ります。

  • プロパティのsetter、getterを必ず作って下さい。publicフィールドの動作は確認していません。
public class TestFisshplateDto {
    private String title;
    private List itemList;
    
    (setter、getter省略)
} 

次に、インタフェースを定義します。

  • メソッドの戻り値は、必ず「HSSFWorkbook」にして下さい。
  • 引数は1つにして下さい。引数が複数の場合、第1引数のみが埋め込み用データとして扱われ、他は無視されます。
  • メソッドはいくつあっても構いません。が、オーバーロードするとテンプレートのファイル名との対応が出来なくなるので、 メソッド名はそれぞれ一意になるようにして下さい。
public interface TestFisshplate {
    HSSFWorkbook getTestWb(TestFisshplateDto dto);
}

diconファイルに、コンポーネントとして登録します。

<components>
    <include path="s2fisshplate.dicon"/>
    
    <component class="org.seasar.fisshplate.interceptor.TestFisshplate" >
        <aspect>fisshplate.interceptor</aspect>
    </component>
</components>   

「s2fisshplate.dicon」をインクルードして下さい。そして、Fisshplate用インタフェースのコンポーネント定義に、 aspectで「fisshplate.interceptor」をかませます。

テンプレートファイルを作ります。

  • ファイル名は、「インタフェース名_メソッド名.xls」にして、インタフェースと同じパッケージに置きます。
    • この規約通りのファイル名、パッケージにする事で、S2Fisshplate側でテンプレートの読み込みを自動で行う事が出来ます。
    • TestFisshplate#getTestWb()の場合ファイル名は「TestFisshplate_getTestWb.xls」になります。
  • 引数のDtoのプロパティは、「data」という名前で参照出来ます。
    • この場合、TestFisshplateDto#getTitle()は「${data.title}」で参照されます。

呼び出し側はこのようになります。 テンプレートファイルの読み込み、解析、ファイル出力などの処理が自動で実行され、出力ファイルが戻されます。

public TestFisshplate fisshplate; //S2からインジェクションされます。

public void Hoge(){
    TestFisshplateDto dto =new TestFisshplateDto();
    dto.setTitle("テストです");
    List itemList = new ArrayList();
    TestItem item = new TestItem();
    item.setDate(new Date());
    item.setName("1行目");
    item.setNum(10);
    itemList.add(item);
    // 適宜明細行を追加
    dto.setItemList(itemList);
            
    HSSFWorkbook wb = fisshplate.getTestWb(dto);
    //以下略
}

このようにして、データ埋め込み済みのHSSFWorkbookを取得する事が出来ます。

SMART deploy

S2Fisshplateは、S2のSMART deployをサポートしています。

SMART deployでS2Fisshplateを使うには、いくつかの設定とルールが必要になります。

creator.diconの編集

creator.diconに、FisshplateCreatorを登録します。

<components>
    <include path="convention.dicon"/>
    <include path="customizer.dicon"/>
    <component class="org.seasar.framework.container.creator.PageCreator"/>
    <component class="org.seasar.framework.container.creator.ActionCreator"/>
    (中略、以下を追記)  
    <component class="org.seasar.fisshplate.creator.FisshplateCreator" />
</components>

customizer.diconの編集

customizer.diconに、「fpaoCustomizer」の名前でCustomizerを登録します。

<component name="fpaoAspectCustomizer" class="org.seasar.framework.container.customizer.AspectCustomizer">
    <property name="interceptorName">"fisshplate.interceptor"</property>
</component>

<component name="fpaoCustomizer" class="org.seasar.framework.container.customizer.CustomizerChain">
    <initMethod name="addCustomizer">
        <arg>fpaoAspectCustomizer</arg>
    </initMethod>
</component>

app.diconの編集

app.diconにincludeを追加します。

<include path="s2fisshplate.dicon"/>

インタフェースのルール

SMART deployの場合、Fisshplateアクセス用のインタフェースのパッケージと名前を規約通りにする必要があります。

インタフェースのサフィックスを「Fpao」にして下さい。「Fpao」は、「Fisshplate Access Object」の略です。

また、インタフェースのパッケージを「(convention.diconのrootPackageName).fpao」にして下さい。

以上で、特にdiconファイルに書かなくても、「xxxxFpao」というインタフェースを作るだけで、S2Fisshplateの機能が使えるようになります。