Dolteng -- PageとActionに分けてもprerender()がPageに...


NewPageWizardPage#createPrerender()において
なにやら、
this.set[TableName]Items(get[TableName]Dao().selectAll());
を出力している。
DBFlute利用者としてはこの機能自体は利用しないのだが、
これがあると、確かに簡単にActionの方へ定義はできない。
this.xxxPage.set[TableName]Items(get[TableName]Dao().selectAll());
と言う感じかな。Daoの宣言場所もPageでなくActionでなければならない。

話がそれるが、このselectAll()はソート順とか論理削除済みレコード除去とか
できるだろうか???それが器用に指定できなければ実開発では使えないのだが...

Templateを発見:template/fm/scaffold/java_dao_s2dao.ftl
public ${configs.table_capitalize}[] selectAll();
特に何も指定がないので、ソート指定も論理削除済みレコード除去は
自分で指定する必要がありそう。でもこのMethodに付けると、
そのTableのselectAll()はその画面専用の仕様になるため、
基本は、selectXxxAll()を作って呼び変えてあげることになりそう。

話を戻して...
TeedaでActionとPageを分けるやり方を採用するには、
やはりDoltengでinitialize()とprerender()がActionに出力されるようにしたい。
よく考えると、Actionを作ってまでPageでinitialize()はprerender()はありえない。
PageとActionの両方にLogicのためのComponentをInjectionしてもらわなければならない。
NewPageWizardPage#createPrerender()内で、分離か否かの判定ができて、
その判定で上記のItems検索出力機能の記述を変えて、
出力自体をActionに変えることができればOKかな...