如何在 jsp 页中将字符串显示为 xml



我正在处理 Struts2 项目,在操作类中,我将字符串传递给 jsp 页面。我想在 jsp 页面中将该字符串内容显示为 xml。

JSP页面:响应.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
    <s:property value="sampleStr" />

操作类:响应操作

public class ResponseAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public String sampleStr;
public String execute() throws IOException {
    String responseStr = readStringFile();
    setSampleStr(responseStr);
    return SUCCESS;
}
@SuppressWarnings({ "rawtypes", "unchecked" })
public String readStringFile() throws IOException{
      String xmlStr = "<?xml version="1.0" encoding="UTF-8" standalone="yes"?>n"+
              "<response>"+ "$$" +
              "</response>";
     InputStream inputStream = XmlFormatter.class.getResourceAsStream("/sample.txt");
        BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-16")));
        String s = "";
        List list = new ArrayList();
        String line;
        while ((line = reader.readLine()) != null) {
            list.add(line);
        }
        for (Object s1: list) {
            s= s + s1;
        }
        xmlStr =   xmlStr.replace("$$", s);
        return xmlStr;
}

public String getSampleStr() {
    return sampleStr;
}
public void setSampleStr(String sampleStr) {
    this.sampleStr = sampleStr;
}
}

支柱.xml :

<package name="default" namespace="/" extends="struts-default">
  <action name="PEConsolidation" class="com.metlife.ibit.pe.web.controller.actions.ResponseAction">
  <interceptor-ref name="defaultStack" />
    <result name="success">/WEB-INF/jsps/response.jsp</result>
  </action>
</package>

当我查看响应.jsp时,它将返回字符串显示为文本。 请有人帮助显示为XML内容吗?

s:property具有内置的HTML,JavaScript和XML转义功能。 默认情况下,它转义 HTML。

我想你想做的是根本无法逃避:

<s:property value="sampleStr" escapeHtml="false" />

您还应该检查响应的 http 标头("content-type: text/html"在您的情况下是错误的(。

与其使用 jsp,不如考虑使用不同的结果类型,也许编写自己的结果类型。

https://struts.apache.org/core-developers/result-types.html

我认为浏览器试图将XML标签解释为HTML标签,如果不这样做,就会忽略它们。

您需要将每个<和>字符分别替换为&amp;lt;&amp;gt;。你可以在Java API中使用非常有用String.replaceAll()方法。

此外,您可以查看此甲骨文的页面。这对使用带有 XML 技术的 JSP 的开发过程非常有帮助。

相关内容

  • 没有找到相关文章

最新更新