2011-08-22 56 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

雅,但給定的代碼並沒有做到這一點,認爲這個問題不是很清楚,需要澄清, –