フォームを作成する
では、実際にテンプレートとSnippetを利用して、Twitterのクローンのようなアプリケーションを作成します。まずは、簡単な入力フォームを作成してみましょう。次のような画面です。
プロジェクトの作成
前回と同様に、mavenコマンドでLiftプロジェクトを作成します。コマンドラインから、リスト4のように入力することで、プロジェクトが作成されます。
mvn archetype:generate -U \ -DarchetypeGroupId=net.liftweb \ -DarchetypeArtifactId=lift-archetype-basic \ -DarchetypeVersion=1.0 \ -DremoteRepositories=http://Scala-tools.org/repo-releases \ -DgroupId=demo.twitterclone \ -DartifactId=twitterclone \ -Dversion=1.0
それでは、実際に入力フォームを持つ画面をテンプレートとSnippetを利用して作成してみます。以下の3つの手順となります。
- テンプレートを作成する
- Snippetを作成する
- テンプレートをメニューに登録する
テンプレートを作成する
では、入力フォームを持つテンプレートを作成します。
「src/main/webapp」ディレクトリに、「twit.html」というファイル名で新しいファイルを作成します。ファイルの内容はリスト4の通りで、ファイルの文字コードはutf-8とします。
<lift:surround with="default" at="content">
<style>
/* <![CDATA[ */
.status{
border-bottom:2px dashed #D2DADA;
line-height:1.1em;
}
.status li{
list-style:none;
}
.status textarea{
height:100%;
width :60%;
}
.message{
font-size:1.8em;
line-height:2.0em;
color:#666666;
}
/* ]]> */
</style>
<lift:Twit.post form="POST"> *1
<h2>こんにちわ!<twit:name/>さん!</h2>
<h2>いま何してる?</h2>
<ul class="status">
<li> <twit:status/> </li>
<li> <twit:submit/> </li>
</ul>
</lift:Twit.post>
<ul class="status"> *2
<lift:Twit.show>
<li class="message"> <twit:message/> </li>
</lift:Twit.show>
</ul>
</lift:surround>
このテンプレートの中には、2つのSnippetタグが含まれています。*1は「Twit.post」というSnippetで、*2は「Twit.show」というSnippetです。テンプレートを作成する段階では、Snippet側で動的に出力を置き換えたい部分を、<twit:name/>のような任意の名前空間のXMLタグにしておきます。

