コマンドスクリプティングの処理のタグを利用者定義で追加することができます。
<entry bean="sample1.BodyBean" verb="add">
<myTag param="xxx" />
...
</entry>タグの処理をするクラスを、XScriptEngineクラスを継承して作成します。
getTagDefsメソッドで、タグ名と処理をするメソッド名の配列を返します。
処理をするメソッドは、DispatchContextと属性をもつMapオブジェクトを引数として作成します。
スクリプトデータを利用して、他のタグとデータの交換ができます。
public class MyTagEngine extends com.fujitsu.uji.xscript.XScriptEngine {
String tagDefs[][] = { { "myTag", "doMyTag" } };
public String[][] getTagDefs() {
return tagDefs;
}
public void doMyTag(DispatchContext context, Map attributes) {
String param = (String)attributes.get("param");
Object val = context.getScriptData("uji.current");
...
context.setScriptData("myTagValue", val);
}
}ファクトリクラスで、処理のクラスのインスタンスを返します。
public class SampleFactory extends com.fujitsu.uji.http.HttpFactory
{
...
public XScriptEngine newXScriptEngine() {
return new MyTagEngine();
}
}