2011-08-22 45 views
0

我有一个JSP页面,我试图显示一个会话变量,它是一个XML格式的字符串。我试图通过将contentType设置为text/xml来做到这一点,但我的问题的解决方案似乎并不那么简单。该字符串将显示为纯文本。这里的小码snipp:JSP中带有sessionvariables的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,我无法获取会话变量显示相同的方式。我猜想我必须在这个页面上建立一条全新的路线。有任何想法吗?

+0

虽然这是一个不好的方法,但这应该起作用。你确定属性值不只是一个空字符串吗?你确定该属性最初是否设置了正确的值?在获取属性后立即执行'System.out.println(“XML string:”+ xml);'然后读取该行的服务器日志,如果它确实打印了预期的数据。 – BalusC

+0

重新阅读问题后,我发现*“The String将显示为纯文本。”*不明确。你能否详细说明一下?例如。通过包括获得的页面源代码(右键点击,查看源代码)或问题中的一些截图。 – BalusC

回答

0

如果你的问题是没有显示会话变量,即使它是从上面的代码正确设置,然后尝试修改上述代码,直接获取会话变量作为一个字符串(通过类型铸造),而不是创建一个对象,然后将下面给出,,很适合我,,

<%@ 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> 

作为会话变量为空对我来说,如果您有正确初始化然后这可能工作

+0

这真的没有什么区别。这只是一个更好的(更多NPE安全)方法。 – BalusC

+0

雅,但给定的代码并没有做到这一点,认为这个问题不是很清楚,需要澄清, –