= 簡単なアプリの作成 = ****<
> このサンプルは中止。play scala0.9.1からはscala templatesというものが導入され、 標準のテンプレート作成方法はそちらに移行するらしい<
> **** == 方針 == 既存のデータベース(PostgreSQL)データをメンテナンスするための社内用の簡単なアプリを作成する。 * コードはSubversionで管理する。  * テンプレートhtmlは入れ子機能と置換機能しか使用しない。テンプレート内での条件分岐や数式等は必要ない。 * 既存データベースのスキーマは変更しない。 * 社内で利用するためのものなので、デザイン等には凝らない。 == テンプレート側 == === デコレータの使い方 === 複数ページにわたって同じデザインを用いるのはデコレータを使うのが簡単だが、指定方法は少々わかりにくい。例えば、 commonFrame.htmlの中にuserList.html等を埋め込むには、commonFrame.htmlを {{{ ... #{doLayout/} ... }}} などとして、#{doLayout/}部分に各ページが埋め込まれるようにする。埋め込まれる側のuserList.htmlは {{{ #{extends 'commonFrame.tml'/} }}} などと記述すればよいのだが、しかしこの行はuserList.htmlのどこにあってもよい。また、複数のextendsを記述すると、エラーは出ず、最も最後のものが有効になる。 {{{ #{extends 'commonFrame.tml'/} #{extends 'anotherFrame.tml'/} }}} であるから、extendsはファイルの最初に記述するよう習慣づけるのがよいと思われる。 ==== 不明点 ==== デコレータファイルのパスを指定する方法が不明。そもそもデフォルトで作成されるアプリは、 {{{ views +-- main.html +-- Application +-- index.html }}} となっているが、なぜindex.htmlに#{extends 'main.html'/}と記述するとmain.htmlを指すことになるのか説明がない。 === 置換 === ${}の中に式を記述するとそれが展開されるらしい。が、とりあえずは単に「変数」を記述し、その変数値をプログラム側で設定すればよい。 {{{ ${variable} }}} ただし、これは常にエスケープされるため、エスケープされないようにするには次のようにする。 {{{ ${variable.raw} }}} == プログラム側 ==