Velocityコンポーネントで出力をHTMLに埋め込んでみる
前回作ったDB読み込みフローを修正してHTMLで整形したアウトプットが出るようにしてみましょう。
たしか前回は
[Start]→[DBGet]→[EndResponse]
という作りだったと思います。
これを
[Start]→[DBGet]→[Velocity]→[EndResponse]
と修正します
- Velocityコンポーネント(Formatタブにあります)
VelocityはJakartaプロジェクトのテンプレートエンジンです。テンプレートエンジンって何?って感じですけど、要は今まで何回か出てきたEmbed関数みたいなデータの埋め込みをしてくれるプロダクトなのです。
ここでまたVelocityとは〜と始めるとえらい事になるので説明は省きます。
ASTERIAでVelocityを利用するにはテンプレートファイルを作る必要があります。
今回はこんな感じで作りました。
<html> #foreach( $r in $in.records ) <table border=1> <tr><td width=10%>$velocityCount</td><td width=90%>$r.field(0)</td></tr> <tr><td colspan=2>$r.field(1)</td><td></td></tr> </table> #end </html>
簡単に説明しますと、Velocityコンポーネントに渡されたレコードの数だけ「#foreach」内に書かれているテーブルが作られる仕組みになってます。またそのテーブルの中身は差し込まれたレコードの1番目と2番目のフィールドの値が埋め込まれています。
このファイルをVelocityコンポーネントのTemplateFilenameプロパティで指定してあげます。
コンパイルして問題がないことを確認してください。
では実行してみましょう。
事前にDBへいくつかデータを書き込んでおいてください。
例として
- タイトル/今日の天気、本文/今日は晴れでした
- タイトル/今日の出来事、本文/散歩してきました
- タイトル/今日の株価、本文/+100円でした
こんなデータが入っていたとします。
そして実行結果はこうなります。
1 今日の天気 今日は晴れでした
2 今日の出来事 散歩してきました
3 今日の株価 +100円でした
まぁお世辞にもカッコイイとはいえませんけど、また少しらしくなってきたでしょ?
Velocityは資料が少なくて苦労することが多いのですが、WEBでなんとか調べてみてください。Velocityテンプレートを作るにはVTLの知識が必要です。偉そうなことを書いてますが、私自身あんまりよく知りません。(ごめんなさい!!)
- 作者: 東海林賢史,中川智史,江島健太郎,インフォテリア株式会社
- 出版社/メーカー: 翔泳社
- 発売日: 2005/05/16
- メディア: 単行本
- クリック: 252回
- この商品を含むブログ (21件) を見る