web-dev-qa-db-ja.com

Velocityテンプレート-改行

私はApacheのVelocityエンジンとカスタムテンプレートを使用してきました。
問題は、対応する改行を含む文字列を生成できなかったことです。 $ esc.nや$ esc.newline(プロジェクトですでにエスケープツールを使用しています)など、見つけたほとんどすべてを試しましたが、現在使用しているバージョンではサポートされていないようです(1.4 )、「\ n」、「\\ n」、さらには「\\\ n」を入力しても機能するかどうかを確認しましたが、同じことです。

誰かがこれに対する解決策を持っていますか?

14
LdSe

改行に問題があり、VelocityContextにプロパティを配置することになりました。

VelocityContext ctx = new VelocityContext();
ctx.put("newline", "\n");

次に、改行を使用する必要がある場合は常に、コンテキスト変数を参照します。

$newline

文字列内の改行を<br/>に置き換える必要がある場合にこれを使用します。

17
jt.

Javascriptを生成するための新しい行が必要でした。もちろん、私はそうしませんでしたneedですが、開発中に生成されたコードを読みやすくしました。この場合、Velocityが読みやすくなるように変数を設定しました。必要なのはこれだけです。

速度コード:

#set( $newline="
")
#set( $jsCode = "var bling='blang';{$newline}var bark='bite';{$newline}" )
<script>
$jsCode</script>

結果:

<script>
var bling='blang';
var bark='bite';
</script>
8
ClubbedAce

Velocity 1.5以降を使用している場合は、そこに新しい行を挿入することもできます。

#set( $foo = "this has a 
line break" ) 
4
Vadzim

Velocityを使用してHTMLコンテンツを生成していますか?その場合は、改行ではなく<br>を使用する必要があることに注意してください。

実際に改行文字が必要な場合は、実際の改行文字を入力するだけです。つまり、Enterキーを押します。 Velocityには\ nのようなエスケープシーケンスはありません。

4
jbx

VelocityEscapeToolを使用するのが最も簡単かもしれません。

このリンクを参照してください: https://velocity.Apache.org/tools/releases/2.0/javadoc/org/Apache/velocity/tools/generic/EscapeTool.html#getNewline%28%29

使用例:ここで改行:$ esc.newlineこれは新しい行にあります。

0
BigRedBettaFish