【问题标题】:How can I print the newline character in generated html as escaped \n using struts2如何使用struts2将生成的html中的换行符打印为转义\ n
【发布时间】:2018-12-12 12:41:48
【问题描述】:

我正在尝试使用 Strut 标记 生成 JavaScript 代码。但是,插入的内容包含换行符,应将其转义为\n

index.jsp:

<script type="text/javascript">
    document.getElementById("content<s:property value="id"/>").innerHTML = converter.makeHtml("<s:property escape='true' value='content' />");  
</script>

预期的结果应该是:

<script type="text/javascript">
    document.getElementById("content6302").innerHTML = converter.makeHtml("&gt; asdfasdf \n asddfadf");
</script>

实际结果是:

<script type="text/javascript">
    document.getElementById("content6302").innerHTML = converter.makeHtml("&gt; asdfasdf
 asddfadf");    
</script>

asddfadf"); 打印在新行上,但应该是 \n asddfadf"); 在同一行内。

如何在生成的 HTML 中获得转义形式 \n

【问题讨论】:

  • 这有帮助吗? stackoverflow.com/questions/58054/… 您可能需要将 "\\n" 替换为 "\n"。我不是一个 jsp 编码器。
  • 我只是不想打印新行而不是打印“\n”,也不想替换。
  • 代码下方的“标题”令人困惑...好的,然后将'\n' 替换为'\\n',即转义反斜杠。
  • 由于这个问题不属于 JavaScript,我已经删除了误导性的 SO 标签。尝试仔细选择问题下方的标签,以抓住合适的人回答您的问题。
  • 如果没有进一步的知识,我猜:&lt;s:property escape='true' value='%{content.replace("\n","\\n")}' /&gt;(参见stackoverflow.com/questions/6866514/…

标签: jsp struts2


【解决方案1】:

就像@Dave Newton 发布的一样,将escapeJavaScript=true 添加到属性标签可以解决问题

<s:property value='%{content}' escape='false' escapeJavaScript='true'/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-04
    相关资源
    最近更新 更多