@nqounetです。
第5回はフォームを使えるようにしました が、何度も入力する場合にはブラウザの「戻る」ボタンを使う必要がありました。
今回は戻らなくても表示されるようにしてみましょう。
サンプルコード全体
Mojoliciousのバージョンは5.77で確認しています。
ファイル名はなんでも良いですが、ひとまずmyapp.plと考えてください。
|
|
解説
Line 4 - 9
|
|
前回では、テンプレートを使う時に、文字列を渡しましたが、コードリファレンスの中でテンプレートを指定することもできます。
render
メソッドにtemplate
とセットで文字列を渡すと、そのテンプレートが使用できます。
stash
というメソッドは、テンプレートに値を渡したい時に使用できます。
stash
メソッドに、テンプレートで使用する名前(今回はhello
)と、値(今回はqq{Hello $user!}
)を渡すと、テンプレートでは、スカラー変数として使うことができます。
Line 26
|
|
stash
で渡した値を実際に使用しているのがこちらです。
stash
で渡した名前のスカラ変数を、``と%>
で括ると、スカラ変数の値を表示することができます。
stashで使える名前
stash
で使える名前にはいくつか制限があります。
予め他の用途で使っている名前があり、これらを使うと想定外の挙動をしますので使ってはいけません。
|
|
私もうっかりするとdata
やstatus
を使ってしまってハマることがあります。気をつけましょう。
それと、(使うことはないと思いますが)mojo.
で始まる名前も使えません。
ビューとコントローラー
これまでテンプレート、という表現をしていますが、フレームワークでは、このテンプレートを含めた表示する部分のことを「ビュー(view)」と呼んでいます。
そして、コードリファレンスの部分についても呼び方があり、こちらは「コントローラー(controller)」と呼びます。
stash
を使うと、コントローラーからビューに値を渡すことができます。
ビューから考えると、ビューで使いたい値は、コントローラーからstash
を使って渡す必要があります。
多機能だけど必要なところだけ使えばOK
コレまでは、テキストとして直接出力していましたが、stash
を使ってコントローラーからビューへ値が渡せるようになりましたので、ビューを使ったHTMLで表示することができるようになりました。
皆さんも美味しいところだけをうまく使ってサクッとウェブアプリを作ってみましょう。
ところで、今月末(2015年2月28日)の土曜日にPerl入学式の第6回(今期の最終回)を開催します。
内容としては、何かしらのウェブアプリ(予定では1行掲示板)を作成します。
大阪の講師は私が担当する予定です。
あなたがまだ知らないPerlをお見せします。
- Perl入学式 公式サイト
- Perl入学式 in大阪 第6回 Webアプリ編 on Zusaar ← お申し込みはこちらから。
お申し込みをお待ちしております。