【问题标题】:Render XML in jsp from Custom Tag通过自定义标签在 jsp 中渲染 XML
【发布时间】:2015-05-19 10:27:26
【问题描述】:

我有自定义标签,我在其中获取 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,但无法在浏览器上正确呈现。如图

【问题讨论】:

  • 整理了一些语法错误。

标签: java xml jsp jstl


【解决方案1】:

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

dis = new DataInputStream(bis);
String final_str="";
while (dis.available() != 0) {  
        String currentLine=dis.readLine();
        System.out.println(currentLine);
        final_str + = currentLine + "\n";
} 

上面的代码将打印输入流中的所有行,你可以将它存储到一个字符串中并用

返回它
pageContext.setAttribute("sitemap",final_str);  

更新 这个函数接受一个普通的 xml 字符串并格式化字符串(缩进)

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 呈现时,“/n”新行不起作用。其次,它仅显示 XML 标记的值。标签本身不出现。
  • 能把结果贴出来
  • 在 cout 标签中使用 escapeXML 解决了问题,但是你知道如何在 jsp 中执行 xml 的缩进
  • 哦,太好了!我不知道如何在 JSP 中缩进 XML,但我知道如何使用 java
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-19
  • 1970-01-01
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-11
相关资源
最近更新 更多