0

Velocityマクロのリストに要素を追加したいと思います。これは、Velocity出力に「真の」テキストが表示されないようにする唯一の方法ですか?

#set($path = [])
#set($swallow = "a")

#set ($swallow = $path.add("blaablaa"))
4

2 に答える 2

6

うん、もしあなたがそれを黙らせたいなら、#set はあなたの友達です。多くの人は、次のようなマクロでこれをショートカットします。

#macro( call $this )#set( $stfu = $this )#end

次に、次のように短縮できます

#call( $path.add('blaablaa') )
于 2009-02-02T22:33:41.970 に答える
3

Artimaのインタビューモデルとビューの分離に関する優れた論文で関連するコメントを持っているTerenceParr( StringTemplateの父)に同意する必要があります。

テンプレートは純粋なプレゼンテーションに制限する必要があります。モデルにプレゼンテーション層の詳細を入れてはいけないのと同じように、テンプレートにデータ操作を入れてはいけません。通常、どちらかを実行すると、メンテナンスがより困難になり、メンテナンスをどこで行うかを知るのがさらに難しくなります。

VelocityとStringTemplateの両方に関する私自身の経験に基づいて、質問の問題(テンプレートをより複雑にするデータ操作のアーティファクト)をヒントとして取り上げ、データ構造のすべての操作をJavaレイヤーに移動することを強くお勧めします。

于 2009-01-29T14:02:02.537 に答える