簡體   English   中英

Apache Velocity:替換換行符不起作用

[英]Apache Velocity: replace newline does not work

在我的Java / Spring Web應用程序中,我正在使用Velocity Template(1.7)來“構建” HTML郵件。

當我將自定義對象傳遞到.vm模板時,我無法用html break替換出現的“ \\ n”(換行符)字符<br />

我的意思是:

<p>$myobject.description.replace("\n","<br/>")</p>

不起作用,但是如果我替換了另一個不同於“ \\ n”的隨機字符,則它起作用。

我嘗試了兩次轉義$myobject.description.replace("\\\\n","<br/>")但沒有成功。

如果同一行代碼

myobject.description.replace("\n","<br/>");

在我的服務Bean中執行它有效,並且每個換行符均正確替換為html break。

你能說出什么問題嗎?

提前致謝。

您可以按照速度存檔答案中的建議在新行中使用replaceAll:

從Velocity 1.5(及其Beta版本)開始,VTL允許在字符串文字定義內換行。 這意味着您將通過鍵入實際字符而不是使用Java轉義序列(\\ n)在字符串中添加換行符。 因此,您需要執行以下操作:

 #set( $new = " " ) $foo.replaceAll( "$new", "$new * " ) 

在您的情況下:

 #set( $new = "
 " )
<p>$myobject.description.replaceAll( "$new","<br/>")</p>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM