如果从服务器发送到客户端,HTML字符串会获得额外的换行符

时间:2017-02-10 07:00:42

标签: javascript java spring modelandview

我遇到字符串操作问题。我有一些用java编写的代码,它将使用xls转换器为我生成一些html - 以字符串形式。

我使用spring框架将此字符串传递回我的Web代码,但是当字符串到达​​javascript时,它会因“无效或意外的令牌错误而失败。此外,当字符串写入控制台时,似乎该字符串现在包含每个新标记的换行符。

对于我的javascript,我真的需要html是一行。 这里有一些代码位:

    try {
        SimpleResultSet rs = dbClient.executeQuery("select MediaContent from call where id = " + callID);
        if (rs.next()) {
            media = rs.getString("MediaContent");
            mimeType = rs.getString("MediaTypeID");

            if(media.startsWith("<?xml")) {
                trace.info("XSLT: " + xltString);
                trace.info("Database XML: " + media);
                media = Transform(media, xltString, response);
                //trace.info("result HTML: " + media);

                if (!media.isEmpty()) {
                    media = media.replaceAll("\n\r", "")
                        .replaceAll("\n", "")
                        .replaceAll(System.lineSeparator(), "");
                }
            }

            //media = media.replaceAll("\"","\\\\\"");

        }
    } catch (DBException e) {
        trace.warning("Failed to get call content media for call id = " + callID, e);   
        return media;
    }
    trace.info("cleaned HTML: " + media);
    return media == null ? "" : media; 
}

此时,跟踪打印出已清理的HTML,在一行中显示所有字符串,没有任何换行符。然后将字符串传播到ModelAndView,如下所示:

return new ModelAndView("media", "media", mediaStr);

并在javascript方面:

<script>
    var contentString =  "${media}";
    document.getElementById("mediaContentIFrame").srcdoc = contentString;

它是javascript端的contentString变量,失败并出现无效或意外的令牌错误。 contentString用于初始化IFrame的srcdoc属性。

1 个答案:

答案 0 :(得分:0)

你已经添加了两个支票\ r \ n和\ n ..还要添加\ r \ n我希望它会开始工作:)