[英]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.