2011-08-16 24 views
1

我試圖給一個字符串變量傳遞到我的javascript功能,但我的變量有一個多行:例如:傳遞java字符串處理的多行JavaScript函數(使用Velocity)

String info = "aaaa \n bbb \n ccc"; 

我需要此表單才能正確顯示它。現在我有一個「結果」與信息字段的Java對象,我不能傳遞給我的JavaScript函數。

popupErrors('$!{result.info}')" 

的問題是,result.info被放在這裏,與新線全部文本。我怎麼解決這個問題?

+0

不知道什麼popuperror它會努力幫助。 –

+0

你想把你的'\ n's轉換成'
'嗎? – Jeremy

+0

這將是一個好主意,將其轉換爲
s。我該怎麼做? – Dawid

回答

2

也許popupErrors顯示的是一個HTML彈出的字符串,而不是說一個JavaScript警報。所以新線路沒有顯示,您需要用<br/>替換\n,以便它們以HTML顯示。 OR 也許$!{result.info}自動爲HTML編碼的\n&#010;

+0

在我的Java類中更改\ n爲
解決了我的問題:)謝謝 – Dawid

0

您需要轉換您的字符串,以便所有JavaScript特殊字符(行結尾,「,」,製表符等)都被轉義(\ n,\「,\',\ t等)。

Commons-lang有StringEscapeUtils.escapeEcmaScript這樣做。將此方法封裝在JSP標記中,或者在控制器中轉義字符串。

0

替換\ n,其中的空間。

Str.replace("\n"," "); 

然後字符串傳遞給JavaScript函數

+1

如果字符串中有註釋「//」,這將不起作用 –