速度と Java メソッドの戻り値の無視
-
20-08-2019 - |
質問
Velocity マクロのリストに要素を追加したいと考えています。これは、Velocity 出力に「本当の」テキストが表示されるのを避ける唯一の方法ですか?
#set($path = [])
#set($swallow = "a")
#set ($swallow = $path.add("blaablaa"))
解決
私はテレンス・パー(の父)の意見に同意せざるを得ません。 文字列テンプレート) に関連するコメントがある人 アルティマのインタビュー そして モデルとビューの分離に関する優れた論文.
テンプレートは純粋なプレゼンテーションに限定する必要があります。モデルにプレゼンテーション層の詳細を含めるべきではないのと同様に、テンプレートにデータ操作を含めるべきではありません。どちらかを行うと、通常、メンテナンスがより困難になり、さらにはそれを知ることが難しくなります。 どこ メンテナンスをすること。
Velocity と StringTemplate の両方に関する私自身の経験に基づいて、質問の問題 (テンプレートをより複雑にするデータ操作のアーティファクト) をヒントとして取り、データ構造のすべての操作を Java レイヤーに移動することを強くお勧めします。
他のヒント
あなたはそれを黙らせたい場合は、
うん、その後の#setはあなたの友達です。多くの人々は、このようなマクロでこれをショートカットます:
#macro( call $this )#set( $stfu = $this )#end
そして、あなたに短縮することができます。
#call( $path.add('blaablaa') )
所属していません StackOverflow