Tuigwaaのプラグインとは

Tuigwaaの基本的なプラグインは、日時を表示したり、ページ名を表示したりといった表示系のプラグインから、 フォームからの入力を受け取ってデータベースにデータを登録するようなプラグインまであります。 ここでは、基本的な表示系のプラグインの開発方法について説明します。

表示系のプラグインの開発方法としては、基本的なものと、Velocity を利用するものの二種類があります。 基本的な手順としてはどちらも

  • Pluginインターフェースを実装したクラスを作成する
  • 設定ファイルに追加する
となっています。

基本的な表示系プラグインの作成

Tuigwaaで「HelloWorld」を表示するプラグインを作成する方法を解説します。

クラスの作成

プラグインを設置する場所はどこでも良いのですが、わかりやすくするために「org.seasar.tuigwaa.plugin.custom」にします。

「org.seasar.tuigwaa.plugin.AbstractPlugin」を拡張し、「HelloWolrdPlugin」クラスを作成します。

抽象メソッド「doHTMLView」を実装します。

package org.seasar.tuigwaa.plugin.custom;

import org.seasar.tuigwaa.cms.core.CmsRequest;
import org.seasar.tuigwaa.cms.core.CmsResponse;
import org.seasar.tuigwaa.plugin.AbstractPlugin;
import org.seasar.tuigwaa.plugin.PluginException;
import org.seasar.tuigwaa.plugin.PluginRequest;

public class HelloWorldPlugin extends AbstractPlugin {

	public String doHTMLView(CmsRequest request, CmsResponse response,
			PluginRequest prequest) throws PluginException {
		
		return "<b>Hello Tuigwaa World</b>";
	}

}

プラグインで出力したい文字列を返します。ここでは<b>Hello Tuigwaa World</b>という文字列を返すよう設定しました。

設定ファイルに追加

「tuigwaa/src/conf」以下の「wiki.xml」にプラグインの設定を記述します。

適当な箇所に以下を追加します。

<plugin name="helloworld" class="org.seasar.tuigwaa.plugin.custom.HelloWorldPlugin" />
					

※wiki.xmlは今後構造が変わる可能性もあります。

その後再起動することでTuigwaaのwikiより「#helloworld」という記法で呼び出すことが出来ます。

Velocityを用いた表示系プラグインの作成

Velocityを利用するプラグインを作成する方法を解説して行きます。

クラスの作成

前回と同様、「org.seasar.tuigwaa.plugin.custom」以下にクラスを作成します。

「org.seasar.tuigwaa.plugin.basic.VelocityPlugin」を拡張し、「HelloWordlPlugin2」クラスを作成します。

「doHTMLView」メソッドをオーバーライドします。

package org.seasar.tuigwaa.plugin.custom;

import org.seasar.tuigwaa.cms.core.CmsRequest;
import org.seasar.tuigwaa.cms.core.CmsResponse;
import org.seasar.tuigwaa.plugin.PluginException;
import org.seasar.tuigwaa.plugin.PluginRequest;
import org.seasar.tuigwaa.plugin.basic.VelocityPlugin;

public class HelloWorldPlugin2 extends VelocityPlugin {
	
	public String doHTMLView(CmsRequest request, CmsResponse response, 
						PluginRequest prequest) throws PluginException {
		
		String message = "hello tuigwaa world";
		
		return doHTMLViewBindingObject(request,response,prequest, message);
	}
	
}

VelocityPluginのdoHTMLViewBindingObjectを呼び出します。

VelocityにはListやMapなどを用いることで複数のオブジェクトを渡すことが出来ます。

Velocityテンプレートの作成

Velocityのテンプレートファイルは「tuigwaa/src/conf」以下の「org.seasar.tuigwaa.plugin.velocity」以下に作成します。

作成するファイル名は「プラグインの呼び出し名.vm」です。

このプラグイン用に「helloworld2.vm」というファイルを作成します。

<b>$bean</b>

doHTMLViewBindingObject()の第四引数で指定したオブジェクトは「bean」という名前でVelocityに渡されます。

設定ファイルに追加

「tuigwaa/src/conf」以下の「wiki.xml」にプラグインの設定を記述します。

適当な箇所に以下を追加します。

<plugin name="helloworld2" class="org.seasar.tuigwaa.plugin.custom.HelloWorldPlugin2" />

※wiki.xmlは今後構造が変わる可能性もあります。

呼び出し名は先ほどと同様「helloworld2」に設定します。

その後再起動することでTuigwaaのwikiより「#helloworld2」という記法で呼び出すことが出来ます。