Java 在JSP中添加字符串中的新行
我试图将一个字符串作为请求属性传递给JSP。 setAttriute(“字符串”,xml) 该字符串来自使用以下代码解析的xml文件:Java 在JSP中添加字符串中的新行,java,xml,string,jsp,Java,Xml,String,Jsp,我试图将一个字符串作为请求属性传递给JSP。 setAttriute(“字符串”,xml) 该字符串来自使用以下代码解析的xml文件: Document doc = dBuilder.parse(fXmlFile); DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation(); LSSerializer lsSerializer = domImplementation.crea
Document doc = dBuilder.parse(fXmlFile);
DOMImplementationLS domImplementation = (DOMImplementationLS) doc.getImplementation();
LSSerializer lsSerializer = domImplementation.createLSSerializer();
String string= lsSerializer.writeToString(doc);
当我把这个字符串放在控制台上时,我可以看到很好的格式化输出(和XML文件一样,保留了新行)
当我试图在JSP中显示该字符串时,我观察到未格式化的代码,该字符串不会形成新行符号
这是来自JSP的代码:
我试图使用fn:replac
e函数,但它也不起作用(我试图转换'a'后者,而不是'\n'
,只是为了测试带有特殊字符的ommit问题)。我可以在显示的字符串中看到
标记,但它不会转换为新行
<c:set var="string2" value='${fn:replace(string, "a", "<br />")}' />
当您显示
string2
时,如果您使用JSTL显示它(我认为您是这样),则需要将escapeXml属性显式设置为false。因为默认情况下JSTL escapeXml属性为true,这将以纯文本格式呈现标签,如
。因此,在JSP中显示字符串时,请按如下所示使用它
<c:out value="${string}" escapeXml="false" />
这会将字符串中的任何
br
标记解释为换行符可能一个${string}
就足够了,不需要替换。工作非常完美!谢谢