在JSP中添加字符串中的新行

时间:2015-08-05 09:53:18

标签: java xml string jsp

我正在尝试将字符串作为请求属性传递给JSP。 reuqest.setAttriute(“string”,xml);

字符串来自xml文件,使用以下代码解析:

Document doc = dBuilder.parse(fXmlFile);    
DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
LSSerializer lsSerializer = domImplementation.createLSSerializer();
String string= lsSerializer.writeToString(doc);

当我把这个字符串放在控制台上时,我可以看到很好的格式化输出(就像在XML文件中一样,保留了新行)。

当我试图在JSP中显示该字符串时,我发现没有格式化的代码,String不会改变新的行号。

这是来自JSP的代码:

我试图使用fn:replac e函数,但它也没有用(我试图转换'a'而不是'\n'只是为了测试以省略特殊字符的问题)。我可以在显示的字符串中看到<br />标签,但它不会转换为新行。

<c:set var="string2" value='${fn:replace(string, "a", "<br />")}' />

1 个答案:

答案 0 :(得分:2)

当您显示string2时,如果您使用JSTL显示它,我认为您是,则需要将escapeXml属性显式设置为false。默认情况下,JSTL escapeXml属性为true,这将以纯文本格式呈现<br/>等标记。因此,在JSP中显示字符串时,请使用如下所示

<c:out value="${string}" escapeXml="false" />

这会将字符串中的任何br标记解释为换行符