Teedaチュートリアル4-3
前回はTeedaの画面遷移の仕方について学びました。
本チャプターではTeedaのPage間の値の引継ぎの基本について学びます。
TeedaはアーキテクチャとしてPRGパターン(XXX参照)を採用しており、
あるPageから別のPageへの値の引継ぎを自動で行います。
引継ぎをする際のルールとしては下記のようなものがあります。
- 引継ぎ元Pageクラスと引継ぎ先Pageクラスで同一のプロパティ名がある場合、Teedaは値を自動で引き継ぐ
- 引き継ぐプロパティは同一のサブアプリケーション内だけに限定する(サブアプリケーションについて後述します)
- スコープのアノテーションがついている場合、指定されたスコープ範囲内での引き継ぎとなる
前のチャプターで作った足し算の例でみてみましょう。
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ユースケース、1サブアプリケーションがTeedaの基本だととってもらえれば良いです。
では、あるサブアプリケーションから別のサブアプリケーションに遷移してしまう場合はどうでしょうか?
この場合、Teedaは値を引き継ぎません。正確にはアノテーションを指定することで引き継ぐことは可能ですが、
原則何も指定しない場合(これをTeedaではデフォルトスコープと呼んでいます)は引き継がない仕様になっています。
今日はここまで。続く。。。。