我正在尝试将字符串作为请求属性传递给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 />")}' />
答案 0 :(得分:2)
当您显示string2
时,如果您使用JSTL显示它,我认为您是,则需要将escapeXml属性显式设置为false。默认情况下,JSTL escapeXml属性为true,这将以纯文本格式呈现<br/>
等标记。因此,在JSP中显示字符串时,请使用如下所示
<c:out value="${string}" escapeXml="false" />
这会将字符串中的任何br
标记解释为换行符