将多行Java字符串传递给javascript函数(使用Velocity)

Passing Java String with multiple lines to a javascript function ( using Velocity)

本文关键字:函数 javascript 使用 Velocity Java 字符串      更新时间:2023-09-26

我试图传递一个字符串变量到我的javascript函数,但我的变量有多行:例如:

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

我需要这个表单来正确显示它。现在我有一个带有info字段的"结果"Java对象,我不能将其传递给我的javascript函数。

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

问题是result.info在这里作为一个带有新行的完整文本。我该如何解决这个问题?

也许popperror是显示字符串一个HTML弹出框,而不是说一个javascript警告。所以新行没有显示,您需要用<br/>替换'n,以便它们显示在HTML中。或也许$!{result.info}是自动HTML编码你的'n&#010;

您需要将字符串转义为Javascript格式:

popupErrors('$esc.javascript($result.info)') 

您需要转换您的String,以便所有JavaScript特殊字符(行尾,",',制表符等)都被转义('n, '", '', 't等)。

Commons-lang有stringescapeutil . escapeecmascript来做这个。将此方法封装在JSP标记中,或者转义控制器中的字符串。

将'n替换为空格

Str.replace("'n"," ");
然后将字符串传递给javascript函数