Teedaチュートリアル4-3


前回はTeedaの画面遷移の仕方について学びました。

本チャプターではTeedaのPage間の値の引継ぎの基本について学びます。

TeedaアーキテクチャとしてPRGパターン(XXX参照)を採用しており、

あるPageから別のPageへの値の引継ぎを自動で行います。

引継ぎをする際のルールとしては下記のようなものがあります。

  1. 引継ぎ元Pageクラスと引継ぎ先Pageクラスで同一のプロパティ名がある場合、Teedaは値を自動で引き継ぐ
  2. 引き継ぐプロパティは同一のサブアプリケーション内だけに限定する(サブアプリケーションについて後述します)
  3. スコープのアノテーションがついている場合、指定されたスコープ範囲内での引き継ぎとなる


前のチャプターで作った足し算の例でみてみましょう。

package examples.teeda.web.add;

public class AddInputPage {

	public Integer arg1;
	public Integer arg2;

	public Class doCalculate() {
		return AddResultPage.class;
	}

	public Class initialize() {
		return null;
	}

	public Class prerender() {
		return null;
	}

}
package examples.teeda.web.add;

public class AddResultPage {

	public Integer arg1;
	public Integer arg2;
	public Integer result;

	public Class initialize() {
		result = new Integer(arg1.intValue() + arg2.intValue());
		return null;
	}

	public Class prerender() {
		return null;
	}

}


上記のAddInputPageからAddResultPageでは、同一のプロパティarg1とarg2があるので

これらはTeedaによって自動で引き継がれます。

AddInputPageからAddResultPageのpackage文に注目してみてください。

Teedaは同一のパッケージの場合、同一サブアプリケーションだとみなして、値を自動で引き継ぐようになっています。

サブアプリケーションとは、ユースケースごとに設定されるグループの事です。

ユースケース、1サブアプリケーションがTeedaの基本だととってもらえれば良いです。



では、あるサブアプリケーションから別のサブアプリケーションに遷移してしまう場合はどうでしょうか?

この場合、Teedaは値を引き継ぎません。正確にはアノテーションを指定することで引き継ぐことは可能ですが、

原則何も指定しない場合(これをTeedaではデフォルトスコープと呼んでいます)は引き継がない仕様になっています。




今日はここまで。続く。。。。