2009-08-04 88 views
1

有什麼問題我使用*.java*.jsp之間的數據傳遞,因爲這是一個MVC框架,它將首先通過*.java。所以我用request.getSession().setAttribute("test", "01010101010")來保存價值,然後在*.jsp,使用request.getSession().getAttribute("test")來獲得價值。 但它總是返回一個奇怪的字符串"682342348"request.getSession()。setAttribute()

+1

乍一看,我不明白爲什麼這不起作用。 您可以向我們展示您使用該值的JSP片段嗎? – djna 2009-08-04 07:04:47

+0

現在,我發現如果我使用<%= request.getAttribute(「test」)%>,一切正常。 但是,當我在它會輸出奇怪的字符串.... – MemoryLeak 2009-08-04 07:21:54

回答

2

這可能是一個JavaScript的問題,試着在alert參數的值加引號:相反,存儲數據的請求屬性。

更改此:

<script>alert(<%=request.getAttribute("test")%>);</script> 

要這樣:

<script>alert('<%=request.getAttribute("test")%>');</script> 
1

嘗試值鑄造成一個字符串,當你把它弄出來會話:

String.valueOf(request.getSession().getAttribute("test")); 
0

它,你的Java類和JSP中以某種方式獲得不同的會話對象是可能的。你可以嘗試比較你從session.getId()得到的價值,以確保它們是相同的。

但是,如果你所要做的只是將對象從java類傳遞給JSP,那麼根本就不需要使用會話。現在

request.setAttribute("test", "01010101010") 
0

request.getSession() - 如果不存在,這將創建一個新的會話。如果您想確保會話不在那裏,您將需要使用request.getSession(false),它不會被創建。