从自定义标记在jsp中渲染XML

时间:2015-05-19 10:27:27

标签: java xml jsp jstl

我有自定义标记,其中我获取XML文件的内容并将它们存储在字符串中并尝试在jsp上呈现。下面是一些代码快照。

 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但在浏览器上无法正确呈现。如图所示。enter image description here

1 个答案:

答案 0 :(得分:0)

  

bis.toString()
  肯定会返回一个对象。   你可以这样做,

pageContext.setAttribute("sitemap",final_str);  

上面的代码将打印输入流中的所有行,您可以将其存储到字符串&amp;用

返回
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);
        }
    }

<强>更新 此函数采用普通的xml String并格式化字符串(缩进)

{{1}}