設定ファイルを修正する
最後に、設定ファイルを修正します。
作成したテンプレートをメニューに登録します。「src/main/scala/bootstrap/liftweb/Boot.scala」を編集します。
まずは*1でSchemifireを利用し、UserモデルとMessageモデルのプロパティをデータベースのスキーマと同期させています。
次に*2で、作成したtwit.htmlをメニューに登録しています。LiftRules.setSiteMap関数にSiteMapオブジェクトを渡します。SiteMapオブジェクトは、Menu型のListを引数に取りますので、リスト10のようにtwit.htmlを登録します。
class Boot { def boot { ... // Schemifireで、UserモデルとMessageモデルのプロパティを // データベースのスキーマと同期させる Schemifier.schemify(true, Log.infoF _, User, Message) *1 // entriesはList[Menu]型 // Menu( Loc( "システムで一意な名称", // "テンプレートへの相対パス", // "メニュー表示用文字列) ) // の形でメニューを追加する val entries = Menu(Loc("Home", List("index"), "Home")) :: Menu(Loc("Twit", List("twit"), "ついったーのようなもの")) :: *2 User.sitemap // LiftRules.setSitemapに上で作成したList[Menu]型の // オブジェクトを渡して登録する LiftRules.setSiteMap(SiteMap(entries:_*)) ... } }
動作確認
プロジェクトディレクトに移動し、「mvn jetty:run」コマンドで開発サーバーを起動します。サーバー起動後に、http://localhost:8080/にアクセスすると、メニューに「ついったーのようなもの」というリンクが追加されています。
このリンクをクリックすると、twit.htmlとして作成した画面が表示されます。
この画面で、テキストエリアに入力して「投稿する」ボタンを押すたびに、下の部分に入力した文字列が追加されていくのが確認できるでしょう。
投稿されたメッセージはデータベースに保存されているため、開発サーバを再起動しても投稿した内容は保持されています。
まとめ
以上で、Liftを利用した開発の流れを、これまでの連載で解説した内容を組みあせて、データベースを利用したアプリケーションを作成しながら解説しました。
次回は、Liftの目玉であるAjaxとCometを利用したアプリケーションの作成方法を解説します。
参考資料
- The Scala Programing Language
- Lift
- 『Programming in Scala: A Comprehensive Step-by-step Guide』 Martin Odersky・Lex Spoon・Bill Venners 著、Artima Inc、2008年11月
- 『The Definitive Guide to Lift: A Scala-based Web Framework』 Derek Chen-Becker・Tyler Weir・Marius Danciu 著、Apress、2009年5月