Velocityの実行時構成は、下でリストされる構成キーの集合によって制御されます。
通常、これらのキーは、値を持ち、それらは、String、コンマで区切られたStringのリスト、CSVと呼ばれるコンマで区切られた値です。
デフォルト値の設定は、Velocityの jar に含まれており、
/src/Java/org/apache/velocity/runtime/defaults/velocity.defaultsにあり、
これはVelocityを使うための設定の元になります。
これはVelocityが常にそれのために『正しい』値を持つことになることは起動時に構成キーであることを確実にします、しかし、それはあなたが欲しいものでないかもしれません。
init()実行以前に指定されるどんな値でも、デフォルトの値を置換します。
したがって、あたなが変更したいキーの値のみを変更すればよく、残りは
気にする必要はありません。さらに、我々はさらに多くの機能と設定を追加
をいきますが、あなたは自分の設定ファイルを変更する必要はありません。
Velocityエンジンは、常にデフォルト値を持ちます。
設定APIについての詳細は上のセクション
Using Velocity In General
Applications を参照してください。
Velocityの挙動を制御する構成キーは、下でリストされます。
カテゴリーによって組織化します、各キーはそれでリストされてす。
そして、現在のデフォルトは『=』記号の右辺の値です。
Runtime Log
runtime.log = velocity.log
エラー、警告と情報を提供するメッセージのためのログ・ファイルのフルパスと名前。
絶対パスでければ、位置は『現在のディレクトリ』となります。
runtime.log.logsystem
このプロパティには、デフォルトの値がありません。
Velocityにインタフェースorg.apache.velocity.runtime.log.LogSystem.で
サポートするロギングのクラスのインスタンス・インスタンスを与えるのに使われます。
そして、それはあなたの他のアプリケーション付きのメッセージがロギングするログが送るVelocityの組合せを許します。
詳細は、
Configuring the Log System
セクションを見てください。
runtime.log.logsystem.class =
org.apache.velocity.runtime.log.AvalonLogSystem
Velocity-instantiated ログシステムのために使用されるクラスです。
runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
trueにすると、これらのエラーカテゴリーのスタックトレースを有効にします。
これは大量のログを生成します。
runtime.log.invalid.references = true
falseにすると、リファレンスが無効のときのログ出力がされません。
出荷時にはfalseにすると良いでしょう。
デバッグ時には、とても役立ちます。
Character Encoding
input.encoding = ISO-8859-1
(テンプレート)入力のエンコーディング文字を指定します。
これを使用すると、テンプレートでUTF-8のような別のエンコーディングを
使用することができます。
output.encoding = ISO-8859-1
VelocityServletとAnakiaからの出力ストリームのための文字エンコーディング
#foreach() Directive
directive.foreach.counter.name = velocityCount
#foreach() 指令で使用され、ループカウントのためのコンテキストキー
として使用されるもじれつを定義する。テンプレートは、ループカウントとして
$velocityCount でアクセスできる。
directive.foreach.initial.value = 1
#foreach()ループで参照されるループカウンタのための開始時のデフォルト値
#include() and #parse() Directive
directive.include.output.errormsg.start
=
directive.include.output.errormsg.end
= ]]>
#include() 指示に関する問題の場合、入力ストリームのエラー・メッセージ用に
開始タグと終了タグを定義します。.start タグと .end タグが定義されるならば、
エラー・メッセージは、.start と .end がプロパティ値を呼ぶ形式で
『.start msg .end』の、ストリームへの出力であることになります。
.start タグ と .end(次の)タグが定義されるならば、レンダリング・ストリームへの
出力は起こるだけです。
directive.parse.maxdepth = 10
テンプレートが解析できる深さを定義します。
テンプレートは、#parse()の中で、さらに #parse()指示を含んでいるかもしれません。
この値は、#parse()再帰の無限ループを防ぎます。
Resource Management
resource.manager.logwhenfound = true
リソース管理からの「見つかった」メッセージのロギングを制御を切り替える。
リソースが最初に見つかったときに、リソース名とローダーのクラス名が
実行時ログに通知されます。
resource.loader = <name> (default = File)
複数値のキー。値のCSV形式を受け入れる。
リソースローダーのPublic名が使用される。このpublic名は、
リソースローダーの特定のプロパティを指定するのに使用される。
注意: 複数値のキーでは、"file, class" (クオート無しで)とような値を渡すことが可能になり、
以下に示されるように2つ値がローダーによって設定値となる。
<name>.loader.description
= Velocity File Resource Loader
与えられたローダーの説明文字列。
<name>.resource.loader.class
= org.apache.velocity.runtime.resource.loader.FileResourceLoader
ローダーのクラスの実装名。デフォルトローダーは、ファイルローダー。
<name>.resource.loader.path = .
複数値のキー。CSV形式の値を受けれます。
Rootは、ローダーが読み込むテンプレートからです。テンプレートは
このルートのサブディレクトリに存在しないければなりません。
例えば、 homesite/index.vm 。 この設定キーは、現在のところ
FileResourceLoader と JarResourceLoader に適用されます。
<name>.resource.loader.cache = false
ローダーでのテンプレートのキャッシュ制御。
配備と開発の問題を簡単にするために、デフォルトは false です。
製品配備のときには、true にすべきです。
『true』とき、modificationCheckIntervalプロパティが適用されます。
これは、リロード制御の便宜のためのキャッシュ機能の制御を許可します。
テンプレートが頻繁に更新され、
アプリケーションに戻ったり、サーブレットエンジンにその機能を
望んでいない場合や許可されていない場合などに
ホスティング環境やIPS環境で役に立ちます。
<name>.resource.loader.modificationCheckInterval = 2
これは、キャッシュがオンにされたときに、修正がされたかチェックする間隔を
秒数で指定します。この数字が > 0 の場合、テンプレートが修正されたか
チェックする間隔を秒であらわしています。もしテンプレートが最後にチェック
したときから変更されていれば、それは再ロードされて、再解析されます。
そうでなければ、何もしません。
また、この数字が <= 0 のとき、修正チェックは行なわれません、プロパティ
cache(上)が true と仮定するとテンプレートを最初にしようする
ときに一度だけ、読み込まれ解析され、それはアプリケーションやサーブレットエンジンが
リスタートされるまでチェックやリロードはされません。
実例を示すために、ここで、例が、FileResourceLoaderをセットアップすることはどのように管理されるかについて示して、デフォルトのVelocityプロパティからのとられます
 |
 |
 |
 |
resource.loader = file
file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
file.resource.loader.path = .
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 2
|
 |
 |
 |
 |
Velocimacro
velocimacro.library = VM_global_library.vm
複数値のキー。CSV形式の値を受け入れます。
Velociry 実行時エンジンが開始したときに、ロードされる
Velocimacroライブラリのファイル名です。これらのVelocimacroは、
すべてのテンプレートでアクセスすることができます。ファイルは
ファイルローダーリソースパスのrootからを仮定しています。
velocimacro.permissions.allow.inline = true
テンブレート内で #macro() 指示を通して新しいVelocimacrosの定義を可能にするかどうかを
決定します。デフォルト値は true です。そして、どんなテンプレートでも新しいVelocimacrosを定義して、使うことができることを意味します。
注意: 他のプロパティに従い、それらの #macro() ステートメントがグローバルな定義を置き換えることができるます。
velocimacro.permissions.allow.inline.to.replace.global = false
テンプレート内で「inline」定義された Velocimacro が、起動時にロードされたライブラリ内の
Velocimacro定義を置換するかどうか制御します。
velocimacro.permissions.allow.inline.local.scope = false
Velocimacros の「プライベート」テンプレートのネームスペースの制御です。
true のとき、テンプレートで #macro() 指示で作成したVelocmacroは、
テンプレートを定義したところからのみアクセスすることができます。
これは、それらが起動時にロードされるグローバルやローカルのライブラリ
にない限り、Velocimacrosが共有できないことを意味します。(上記参照。)
また、テンプレートがお互いに干渉することが無いことを意味します。
「デフォルト」のVelocimacro定義がグローバルであるかそのローカルのライブラリにある所で、
このプロパティもテクニックを許します、そして、テンプレートはそのテンプレートの範囲内で使用のために実装を「オーバーライド」できます。
これは、このプロパティが true の場合に、テンプレートのネームスペースは、
Velocimacro の検索は、グローバルネームスペースより先に行なわれるので、
オーバーライドが働きます。
velocimacro.context.localscope = false
Velocimacroの範囲内のリファレンス・アクセス(set/get)がコンテキストを変えることになるか、そのVelocimacroでローカル範囲であることになるかどうか制御します。
String Interpolation
runtime.interpolate.string.literals = true
VTL String リテラルの展開の仕組みを制御します。
VTL StringLiteralは、特に一般に#set()ステートメント、リファレンスのメソッド呼び出し、
VMへのパラメータにおいてまたは指示的なVTLへの引数として使われる二重の引用符を使っているストリングであるという注意。
詳細はVTLリファレンスを見てください。
Runtime Configuration
parser.pool.size = 20
このプロパティは、Velocityが起動時に作成して、プールに保持する
パーサの数を設定します。
デフォルトでは、20のパーサーですが、たいていの使用のでは十分なはずです。
Velocityがパーサーを使い果たすと、ログに記録され、必要に応じてそれらが
作成されます。
ただし、それらはプールに加えられないことに注意してください。
これは、標準的なパーサーのプールと比較して遅い操作ですが、
これは例外的な状態です。あなたがログ・メッセージに出ている場合には、
このプロパティの数字を増やしてください。