【问题标题】:XML Doc in JSP with sessionvariables带有会话变量的 JSP 中的 XML 文档
【发布时间】:2011-11-01 08:50:45
【问题描述】:

我有一个 JSP 页面,我试图在其中显示一个会话变量,它是一个 XML 格式的字符串。我试图通过将 contentType 设置为 text/xml 来做到这一点,但我的问题的解决方案似乎并不那么简单。字符串将显示为纯文本。这是小代码片段:

    <%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<webiDocument>
<% Object xml = session.getAttribute("XMLstring");
    String XML = xml.toString();%>
<%= XML %>
</webiDocument>

当然只有标记显示为 XML,我无法让会话变量以相同的方式显示。我猜我必须用这个页面走一条全新的路线。有什么想法吗?

【问题讨论】:

  • 虽然这是一种糟糕的方法,但应该可以。您确定属性值不只是一个空字符串吗?您确定该属性最初已设置为正确的值吗?检索属性后立即执行System.out.println("XML string: " + xml);,然后读取该行的服务器日志(如果它确实打印了预期的数据)。
  • 再次阅读问题后,我发现 "The String will show up as plain text." 是模棱两可的。你能详细说明一下吗?例如。通过在问题中包含获得的页面源(右键单击,查看源)或一些屏幕截图。

标签: xml string jsp session-variables


【解决方案1】:

如果您的问题是会话变量没有显示,即使它是从上面的代码中正确设置的,然后尝试通过直接将会话变量获取为字符串(通过类型转换)而不是创建来修改上面的代码一个对象,然后按照下面给出的转换,对我来说效果很好,,

<%@ page language="java" contentType="text/xml; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<webiDocument>
<%     String XML = (String)session.getAttribute("XMLstring");
%>

<%= XML %>
</webiDocument>

在客户端获取以下内容:

<webiDocument>null</webiDocument>

因为会话变量对我来说是空的,如果你已经正确初始化那么这可能会起作用

【讨论】:

  • 这真的没有任何区别。这只是 bit 更好(更 NPE 安全)的方法。
  • 是的,但是给定的代码甚至没有正确地做到这一点,认为这个问题有点不清楚,需要澄清,
猜你喜欢
  • 2010-12-02
  • 2013-07-13
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多