<?xml version="1.0" encoding="Shift_JIS" ?>
<document>

  <properties>
    <author email="jon@latchkey.com">Jon S. Stevens</author>
    <title>You make the decision - Embedded Usage</title>
    <translator>熊坂祐二</translator>
    <original>ymtd/ymtd-embedded</original>
  </properties>

<body>

<section name="埋め込み使用">

<p>
これは、アプリケーション内でVelocityを使用した例です。
</p>

<source><![CDATA[
    OutputStreamWriter writer = new OutputStreamWriter(output, encoding);
    Template template = RunTime.getTemplate(filename);
    template.merge( context, writer );
]]></source>

<p>
言い換えると、上記はこうなります。
</p>

<ol type="1" start="1">
	<li>Writerを作成する</li>
	<li>Velocityに実行時のTempleteの評価をさせる</li>
	<li>テンプレートと内容をマージする</li>
</ol>

<p>
Velocityテンプレートは、データの*どんな*タイプをも含むことができます。
それは、XML、SQL、HTML、普通のテキスト、国際化されたテキスト（何でも）でありえます。
パーサーは、それが気にかけるものから解析して、残りを無視するだけの観点から非常に強いです。
上記のデモでは、他のどのJavaコードにもVelocityのテンプレート・エンジンをはめ込むことは可能です。
これの利点は、それがいろいろな使用のためにユーザーに一つのテンプレート・システムを提供するということです。
</p>

<p>
例えば、J2EE Webサイトの上の<a
href="http://java.sun.com/j2ee/blueprints/sample_application/index.html">ペットショップの例</a>で、注文が終了したとき、電子メール確認を送るJavaBeanがあります。
この例についての残念な部分は、電子メールの内容を変更するためには、Javaコードを編集する必要があることです。
もちろん、この例は、基本形式となるJSPベースのテンプレートを使ことで変更することができます。
しかし、この実装は、単に引数として提出するテンプレートをとることができるコンテキストで、属する<a
href="http://www.working-dogs.com/turbine/cvsweb/index.cgi/turbine/src/java/org/apache/turbine/util/velocity/">Javaオブジェクト</a>を作成することより難しいです。
</p>

<p>
この別の例は、Velocityとともにやって来るTexenとAnakiaツールです。
利点は、再び厳しくウェブ・アプリケーションに縛りつけられない他の役に立つアプリケーションを生産するために埋め込まれたツールとしてVelocityを使う能力です。
JSPエンジンでこれをすることはたぶん可能ですが、それを行うのはかなり難しいです。
</p>

<p>
あなたが判断してください。
</p>

<p>
<strong>[ <a href="ymtd-taglibs.html">Taglibs</a> &lt;- 前 | 
    次 -&gt; <a href="./ymtd-implementation.html">実装</a> ]
</strong></p>

</section>

</body>
</document>
