私はApacheのVelocityエンジンとカスタムテンプレートを使用してきました。
問題は、対応する改行を含む文字列を生成できなかったことです。 $ esc.nや$ esc.newline(プロジェクトですでにエスケープツールを使用しています)など、見つけたほとんどすべてを試しましたが、現在使用しているバージョンではサポートされていないようです(1.4 )、「\ n」、「\\ n」、さらには「\\\ n」を入力しても機能するかどうかを確認しましたが、同じことです。
誰かがこれに対する解決策を持っていますか?
改行に問題があり、VelocityContextにプロパティを配置することになりました。
VelocityContext ctx = new VelocityContext();
ctx.put("newline", "\n");
次に、改行を使用する必要がある場合は常に、コンテキスト変数を参照します。
$newline
文字列内の改行を<br/>に置き換える必要がある場合にこれを使用します。
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>
Velocity 1.5以降を使用している場合は、そこに新しい行を挿入することもできます。
#set( $foo = "this has a
line break" )
Velocityを使用してHTMLコンテンツを生成していますか?その場合は、改行ではなく<br>
を使用する必要があることに注意してください。
実際に改行文字が必要な場合は、実際の改行文字を入力するだけです。つまり、Enterキーを押します。 Velocityには\ nのようなエスケープシーケンスはありません。
VelocityEscapeToolを使用するのが最も簡単かもしれません。
このリンクを参照してください: https://velocity.Apache.org/tools/releases/2.0/javadoc/org/Apache/velocity/tools/generic/EscapeTool.html#getNewline%28%29
使用例:ここで改行:$ esc.newlineこれは新しい行にあります。