在JavaScript中处理来自backing bean的换行符

时间:2012-02-02 18:46:33

标签: java javascript jsf

我正在尝试使用我的支持bean中的字符串,该字符串可能包含换行符作为我的JavaScript方法的参数:

来自xhtml的片段:

<a4j:commandLink id="showEntry"
    immediate="true"
    styleClass="smallSpaceLeft"
    action="#{bean1.method()}"
    onclick="jsMethod('#{entry.text}')"
    value="#{messages['general.click']}" />

一切正常,但字符串包含任何换行符。 例如:#{entry.text} =“第一行。\ n第二行。”

html输出如下:

<a class="smallSpaceLeft" href="#" id="j_id279:0:showEntry"
    name="j_id279:0:showEntry" onclick="jsMethod('First line.
    Second line.');A4J.AJAX.Submit('j_id272',event,
    {'similarityGroupingId':'j_id279:0:showEntry','parameters':  
    {'j_id279:0:showEntry':'j_id279:0:showEntry'} } );return false;">Click me</a>

因此,当换行符结束命令时,JavaScript就会被破坏。我怎么能避免这个?

1 个答案:

答案 0 :(得分:1)

您无法在javascript中处理它,您必须在打印代码之前替换换行符。

在字符串中,您可以在换行符之前添加反斜杠。但由于可能有更多有问题的字符,我更喜欢对字符串进行URL编码,然后使用decodeURIComponent()在javascript中对其进行解码。

相关问题