Java 从自定义标记在jsp中呈现XML
我有一个自定义标记,在其中获取XML文件的内容并将其存储在字符串中,然后尝试在jsp上呈现。下面是一些代码快照Java 从自定义标记在jsp中呈现XML,java,xml,jsp,jstl,Java,Xml,Jsp,Jstl,我有一个自定义标记,在其中获取XML文件的内容并将其存储在字符串中,然后尝试在jsp上呈现。下面是一些代码快照 DataInputStream dis = new DataInputStream(bis); String final_str=""; while (dis.available() != 0) { String currentLine=dis.readLine(); Sy
DataInputStream dis = new DataInputStream(bis);
String final_str="";
while (dis.available() != 0) {
String currentLine=dis.readLine();
System.out.println(currentLine);
final_str += currentLine + "\n";
}
logger.info(final_str);
pageContext.setAttribute("sitemap",final_str);
我在jsp上使用的是什么
<c:out value = "${sitemap}" />
如何在jsp中呈现XML?我的日志文件显示XML,但无法在浏览器上正确呈现。如图所示
bis.toString()肯定会返回一个对象。 你可以这样做 上面的代码将打印输入流中的所有行,您可以将其存储到字符串中并返回
pageContext.setAttribute("sitemap",final_str);
更新
此函数接受普通xml字符串并格式化字符串(缩进)
整理了一些语法错误。嗨,这里有两件事。首先在XML呈现时,然后“/n”新行不起作用。其次,它只显示XML标记的值。标记本身没有出现。您可以发布结果吗?在cout标记中使用escapeXML解决了这个问题,但是您知道如何在jspOh中执行xml缩进吗?很好!我不知道如何在JSP中缩进XML,但我知道如何在java中缩进XML
pageContext.setAttribute("sitemap",final_str);
public static String formatXSD(String xmlString) {
try {
Source xmlInput = new StreamSource(new StringReader(xmlString));
StringWriter stringWriter = new StringWriter();
StreamResult xmlOutput = new StreamResult(stringWriter);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setAttribute("indent-number", 2);
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(xmlInput, xmlOutput);
return xmlOutput.getWriter().toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}