我正在尝试将一个String变量传递给我的javascript函数,但我的变量有多行:例如:
String info = "aaaa \n bbb \n ccc";
我需要此表单才能正确显示它。现在我有一个带有信息字段的“结果”Java对象,我无法将其传递给我的javascript函数。
popupErrors('$!{result.info}')"
问题是result.info是用新行放在这里的整个文本。我怎么解决这个问题?
答案 0 :(得分:2)
也许popupErrors正在显示字符串和HTML弹出窗口而不是说javascript警报。因此,新行未显示,您需要将\n
替换为<br/>
,以便它们以HTML格式显示。
要么
也许$!{result.info}
会自动将您的\n
编码为

答案 1 :(得分:1)
您需要escape the string to Javascript format:
popupErrors('$esc.javascript($result.info)')
答案 2 :(得分:0)
您需要转换字符串,以便转义所有JavaScript特殊字符(行尾,“,”,制表符等)(\ n,\“,\',\ t \ t等)。< / p>
Commons-lang有StringEscapeUtils.escapeEcmaScript来做这件事。将此方法封装在JSP标记内,或者转义控制器中的字符串。
答案 3 :(得分:0)
用空格替换\ n。
Str.replace("\n"," ");
然后将字符串传递给javascript函数